如何使用java脚本选择只提交一个复选框

时间:2014-05-20 04:53:50

标签: javascript

点击编辑按钮只有选中了一个复选框才能提交表单,选中0或2以上时不提交复选框

我的以下代码无效

$("#editbtn_id").click(function () {
    var cnt = 0;
    var checkbox_value = "";
    $(":checkbox").each(function () {
        var ischecked = $(this).is(":checked");
    });

    if (ischecked) {
        checkbox_value += $(this).val();
        cnt = cnt + 1;


        if (cnt == 0 || cnt > 1) {
            alert(cnt);
            alert("Please select one Test case");
            return false;
        }
    }
    return false;
});

HTML

<form action="/editSingletest/{{ testcase.id }}" method="post" onsubmit="return" >
<input type="checkbox"/>
</form>

3 个答案:

答案 0 :(得分:0)

你的计数器是错误的循环,应该是这样的:

$("#editbtn_id").click(function(){
       var cnt=0;
       var checkbox_value = "";
       $(":checkbox").each(function () {
          var ischecked = $(this).is(":checked");
          if (ischecked){
                checkbox_value += $(this).val();
                cnt=cnt + 1 ;
          }
        });



        if(cnt==0 || cnt > 1){ ... }    

});

答案 1 :(得分:0)

您可以通过以下代码

来实现此目的
$("#editbtn_id").click(function(){
 var cnt=0;
 var checkbox_checked_count = 0;
 var form_submit = false;
   $(":checkbox").each(function () {
       if($(this).is(":checked")) {
         checkbox_checked_count++
       }
    });
if(checkbox_checked_count == 1) {
    form_submit = true;
}
else if(checkbox_checked_count > 1) {
 alert("Please select one Test case");
}
alert(form_submit)
$("form").submit();    
});

在此fiddle

中查看工作示例

答案 2 :(得分:0)

试试这个

$("#editbtn_id").click(function (e) {
    if($('form input[type="checkbox"]:checked').length == 1){
        $('form').submit();
    }
    else{
        e.preventDefault();
    }
});

for'form'使用表单选择器