防止表单被提交 - jquery

时间:2016-09-18 18:35:16

标签: javascript jquery forms

我想检查在单击提交按钮后是否至少有一个复选框在表单中检查,如果不是,用户应该收到消息,表单应该不提交,所以我写了这段代码: / p>

 jQuery(document).ready(function ($) {
    $('#price_quote_create_invoice').click(function () {
       $('.price-quotes-table input[type="checkbox"]').each(function () {
           if ( $(this).is(':checked') ){
                $('#post').submit();
                return false;
           } else {
               alert("You didn't chose any checkbox!");
               return false;
           }
       }) ;
    });
});

但是,在警告框中按“确定”后,表单会提交。

知道为什么会这样吗?

3 个答案:

答案 0 :(得分:1)

您的代码几乎是正确的。

您在点击事件中返回false,但您真正想要做的是停止提交事件。

像这样改变。

$('#yourFormId').submit(function(){
  if (!$(this).find('input[type="checkbox"]:checked').length) {
   alert("You didn't chose any checkbox!");
   return false;
  }
});

答案 1 :(得分:0)

 alert('You didn't chose any checkbox!');

警报中还有一个逗号..

答案 2 :(得分:0)

您可以使用event.preventDefault()执行此操作。 eventclick函数的第一个参数。 Reference