我的javascript在复选框检查中有一些错误

时间:2014-11-28 08:04:09

标签: javascript

我的javascript中存在问题。 我想要做的就是如果我的用户没有选择任何复选框给出10个复选框,那么我想给他一个提醒,否则提交表格。 我写了一个js代码,但即使选中复选框也不行。请指出我的错误。 这是我的代码。

window.onload = function() {

    document.getElementById('submitbtn').onclick = function() {
                    var count = 0;
                    if(document.getElementById("pid1").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid2").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid3").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid4").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid5").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid6").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid7").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid8").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid9").checked == "checked")
                    {
                        count++;
                    }
                    if(document.getElementById("pid10").checked == "checked")
                    {
                        count++;
                    }
                    alert(count);
                    if(count == 0){
                    alert("Please select atleast 1 product");
                    return false;}
                    else{
                        document.getElementById("formreturn").submit();
                        return false;}
                };
    };

4 个答案:

答案 0 :(得分:4)

您应该检查checked属性是否为truthy / falsy,因为checked属性是布尔值。像这样:

if (document.getElementById("pid8").checked) { ..

即使在HTML中,您也不需要将字符串“checked”分配给“checked”属性。只有这个属性的存在就足够了。

您可以重写:

<input type="checkbox" checked="checked" />

这样:

<input type="checkbox" checked />

事实上,你可以为它指定任何东西,它将被忽略并视为存在。

这也有效:

<input type="checkbox" checked="DoNotCheck" />

我看到您正在尝试计算已选中复选框的数量。您可以使用querySelectorAll轻松完成此操作。

请参阅此代码段:

document.getElementById('btn').onclick = function() {
    var l = document.querySelectorAll("input[type=checkbox]:checked").length;
    document.getElementById('result').innerText = l;
}
<input type="checkbox" /><input type="checkbox" /><input type="checkbox" />
<input type="checkbox" /><input type="checkbox" /><input type="checkbox" />
<hr />
<input id="btn" type="button" value="Go" />
<p id="result" ></p>

答案 1 :(得分:2)

您的回答:使用checked属性,它是一个布尔值,因此您不需要将其与“已检查”进行比较。

其次: 重写它,所以代码较少:)

        var count = 0;
        for (var index = 1; index<= 10; index++){
           if(document.getElementById("pid" + index).checked){
                    count++;
           }
        }

答案 2 :(得分:2)

<form action="some.php" id="myForm" method="POST">
    <input type="checkbox" name="some1" value="" id="some1">
    <label for="some1">title of checkbox 1</label>
    <input type="checkbox" name="some2" value="" id="some2">
    <label for="some2">title of checkbox 2</label>
    <input type="checkbox" name="some3" value="" id="some3">
    <label for="some3">title of checkbox 3</label>
</form>


$(function(){

    var form = $("#myForm");

    form.submit(function(e){

       if(form.find("input[type=checkbox]:checked").length > 0){

       } else{

       }

    });

});

答案 3 :(得分:1)

假设pidX input属于checkbox类型,您不需要将.checked"checked"进行比较。

另外,使用循环...

window.onload = function() {
    document.getElementById('submitbtn').onclick = function() {
        var count = 0;
        for(var i = 1; i <= 10; i++) {
            if (document.getElementById("pid" + i).checked) {
                count++;
            }
        }
        alert(count);
        if (count == 0) {
            alert("Please select at least 1 product");
            return false;
        }
        document.getElementById("formreturn").submit();
        return false;
    };
};