允许在jQuery中选中复选框长度后提交表单

时间:2015-01-30 16:59:11

标签: jquery

我有以下代码检查是否选中了一个或多个复选框。如果是,则提交表格。如果不是,我想显示警告。

$('#form').on('submit', function(e) {
    e.preventDefault();
    var check = $('#form').find('input[type="checkbox"]:checked').length;
    if(check == 0) { alert('You must select one checkbox or more.'); }
    else { alert('Submit'); $('#form').submit(); }
});

问题如下:
如果我选中了一个或多个复选框,我会在循环中alert('Submit') ...

你知道为什么吗?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$('#form').on('submit', function(e) {
    if($(this).find('input[type="checkbox"]:checked').length == 0) { 
        alert('You must select one checkbox or more.');
        return false;
    }else{
        alert('Submit');
    }
});

您的代码无效,因为您正在将提交事件触发到同一个提交事件处理程序中... 看看这个场景:

  • 您提交了表单;
  • 您检查了是否选中了复选框;
  • 您提交了表单(同样......);
  • 您检查了是否已选中复选框(再次);
  • 您提交了表格(再次);
  • (再次)
  • (再次)
  • (再次)

对不起我的英文...大声笑