在复选框onclick点下后,根据情况取消勾选动作犀牛书上说,onmouseup 返回false,可取消onclick动作,有以下尝试<input type="checkbox" onmouseup="chk();">
function chk(){
if(条件){
retrun false;
}
return true;
}以上代码在ie8通过,但是在ff下,复选框依然有勾选。
 
请教在ie,ff,Safari,opera,chrome多浏览器通用方法,复选框能够根据情况取消勾选动作至少是ie,ff下通用的十分感谢

解决方案 »

  1.   

    onclick事件
    然后对象的checked = 条件
      

  2.   

    var Tools={}
    Tools.SelectCheckbox = function (objSource, avg) { //(多选框)全选
        if ($("#" + objSource) == null)
            return;
        if (avg.checked)
            $($("#" + objSource + " input[type=\"checkbox\"]").not("[disabled=\"true\"]")).attr("checked", "checked");
        else
            $("#" + objSource + " input[type=\"checkbox\"]").attr("checked", "");
    }调用时
    <div id="aa">
    <input type="checkbox" onmouseup="Tools.SelectCheckbox('aa',this);">
    <input type="checkbox"/>
    <input type="checkbox"/>
    </div>
    这是多选择
      

  3.   

    function chk(){
        if(条件){
            this.checked=="";
        }  
        else{
        this.checked="checked";
        }
    }
      

  4.   

    我的需求是复选框选择不能超过3个,大家的方法我都测试了下,发现还是cj205正确,可能是我的需求没说清楚。
    代码如下
    <input type="checkbox" name="chk" onClick="vote_chk(this);">
    function vote_chk(o){
    var vote_n=0;
    var chk_arr=document.getElementsByName("chk");
    for(var i=0;i<chk_arr.length;i++){
    if(chk_arr[i].checked==true){
    vote_n++;
    }
    }
    if(vote_n>3){
    o.checked=false;
    alert('最多选择3项!');
    }
    }ie8,ff下测试通过,感谢大家发现很多深层的机制还需要了解,onClick后,勾已经选上(之前vote_n==3,后修改为>3),然后通过o.checked赋值,onClick=onmousedown+onmouseup,看来在onmousedown时,勾已经就勾上了,为什么犀牛书上说onmouseup返回false,可取消,而ff下不行,看来ie和ff对onClick有不同的解释,希望高手指点一二。