繁体   English   中英

如何取消选中所有复选框?

[英]How can I uncheck all the checkboxes?

我正在尝试为用户提供一个选项来选择另一种方式来继续操作,并且他们需要为每个无线电选择一个复选框。 那么,如果选择的复选框数量超过1,如何取消选中所有复选框?

function testaCheck(idMaster){
    var inputs,i,checados=0;    
    inputs = document.getElementsByTagName("input");        
    for(i=0;i<inputs.length;i++){
        if(inputs[i].type=="checkbox"){     
            if(inputs[i].checked==true){
                checados++;
                document.getElementsByName('DS_MD'+idMaster).value = idMaster;
                $("#formSelectMAWB").find("#masterDireto").val(idMaster);
            }
        }
    }
    if(checados>1){
        alert("Só pode haver um item selecionado.");    
        document.getElementsByTagName(inputs.checked=false);                    
        return ;
    }
};       

<label class="input-control radio">
    <input type="radio" name="idMAWB" id="idMAWB" value="<%=ID_CD_MAWB%>" onClick="selecionaMAWB(this.value)">
    <span class="helper"><%=DS_MAWB%></span>
</label>    

<label for="DS_MD<%=ID_CD_MAWB%>">
    <input type="checkbox" name="DS_MD<%=ID_CD_MAWB%>" id="masterDireto<%=ID_CD_MAWB%>" onClick="testaCheck(<%=ID_CD_MAWB%>)">
    <span class="helper"> <%=ID_CD_MAWB%> </span>
</label>[layout test][1]

链接:[ 1 ]: https//i.stack.imgur.com/ynIAR.png

您应该正确格式化代码

function testaCheck(idMaster) {
    var inputs, i, checados = 0;
    inputs = document.getElementsByTagName("input");
    for (i = 0; i < inputs.length; i++) {
        if (inputs[i].type == "checkbox") {
            if (inputs[i].checked == true) {
                checados++;
                document.getElementsByName('DS_MD' + idMaster).value = idMaster;
                $("#formSelectMAWB").find("#masterDireto").val(idMaster);
            }
            if (checados > 1) {
                uncheckAll(inputs);
            }

        }
    }
};   

function uncheckAll(inputItems){
    alert("Só pode haver um item selecionado.");
    for (i = 0; i < inputItems.length; i++) {
        inputItems[i].checked = false;
    }
}

您需要使用prop()来设置复选框。

这是我的演示

$("#Allcheck").click(function(){
    $('input:checkbox').not(this).prop('checked', this.checked);
});
    function testaCheck(idMaster) {
    var inputs, i, checados = 0;
    inputs = document.getElementsByTagName("input");
    for (i = 0; i < inputs.length; i++) {
        if (inputs[i].type == "checkbox") {
            if (inputs[i].checked == true) {
                checados++;
                document.getElementsByName('DS_MD' + idMaster).value = idMaster;
                $("#formSelectMAWB").find("#masterDireto").val(idMaster);
            }

        }

    }
    if (checados > 1) {
                uncheckAll(inputs);
                document.getElementsByName('DS_MD' + idMaster).value = null;
                $("#formSelectMAWB").find("#masterDireto").val(null);
            }
};  

function uncheckAll(inputItems){
    alert("Só pode haver um item selecionado. Favor refazer a seleção");
    for (i = 0; i < inputItems.length; i++) {
        inputItems[i].checked = false;
    }
}

感谢您的帮助,这是我的最终代码,可以取消选中所有检查,并在取消选中之前将值设置为null。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM