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

时间:2019-05-03 13:02:33

标签: javascript

我正在尝试为用户提供一个选择,以选择另一种方式继续进行操作,并且他们需要为每个收音机选择一个复选框。那么,如果选中的复选框数量超过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

3 个答案:

答案 0 :(得分:0)

您应该正确设置代码格式

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

答案 1 :(得分:0)

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

这是我的demo

print (info_source.data)

答案 2 :(得分:0)

    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。