在onclick后阻止检查复选框

时间:2014-06-21 09:53:59

标签: javascript checkbox

如何防止选中复选框(不使用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/

HTML

<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;
   };
};

3 个答案:

答案 0 :(得分:3)

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

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

OR

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 :(得分:0)

(1)保存变量中复选框的值[while&#34; click&#34;复选框的值将被更改]

(2)检查用户类型,

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

  • 否则无需更改复选框

  • 的值

(*)通过使用toggle:复选框已经检查过,我们不允许普通用户检查它。

小提琴: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 ");
           }   
        };

答案 2 :(得分:-1)

您的代码也应该有效。 警报后它会被取消选中。 你可以在取消选中后表示警告。

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