防止在onclick之后选中复选框

Prevent checking a checkbox after onclick

本文关键字:复选框 之后 onclick      更新时间:2023-09-26

如何防止复选框被选中(不使用disable)?

我试着

function nocheck() {
   if(somevar.value>3){  
        alert("Not allowed");  
        document.getElementById('mybox').checked = false;           
   }
};

<input type="checkbox" name="mybox" id="mybox" value="test" onclick="nocheck();" />

但是通过这种方式,在弹出警告消息后,复选框仍然被选中。

编辑:感谢评论/回答,我能够更接近解决方案,但还没有解决问题-这段代码有什么问题?http://jsfiddle.net/9kS8E/1/

<div class="ez-checkbox">
<input type="checkbox" name="mybox" id="mybox" value="test" onclick="nocheck();" class="ez-hide">
</div>

JS

var user = { premium : false };
function nocheck() {
    if(!user.premium){                             
     return false;
    } else {   
     return true;
   };
};

我想我不明白你的问题,但我想你是在搜索这个,

<input type="checkbox" name="mybox" id="mybox" value="test" onclick="return false;" />

html

<input type="checkbox" name="mybox" id="mybox" value="test" onclick="nocheck()" />

js

function nocheck() {
   if(somevar.value>3){  
        alert("Not allowed");  
        return false;
   }else
        return true;
};

(1)将复选框的值保存在变量中[而"click"复选框的值将被更改]

(2)检查用户类型

  • 如果不是高级用户,请切换复选框的值

  • 否则不需要更改复选框的值

(*)通过使用toggle: checkbox是否已经选中,我们不允许普通用户选中它。

小提琴:http://jsfiddle.net/aslancods/rQG3r/

       <input type="checkbox" name="mybox" id="mybox" value="test" onclick="noCheck(event)" />
        var user = { premium : true };
        function nocheck(elem) {
           var newValue = elem.checked;
           if(!user.premium) {                             
         alert("not allowed");
             elem.checked = !newValue;// toggle value
           } else {
             alert(" allowed ");
           }   
        };

您的代码也应该工作。警报一过,它就失控了。您可以在取消选中后像这样发出警报。

if(somevar.value>3){ document.getElementById('mybox').checked = false; alert("Not allowed"); }