2016-09-18 5 views
0

送信ボタンがクリックされた後にフォームにチェックされたチェックボックスが1つ以上あるかどうかをチェックしたい場合は、ユーザーがメッセージを受け取ってフォームを送信してはいけません。だから、私はこのコードを書いた:フォームが送信されないようにする - jquery

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

しかし、アラートボックスで[OK]を押した後、フォームは送信されます。

これはなぜ起こっているのですか?

あなたは、アラートに追加のコンマを持つ

答えて

1

あなたのコードはほぼ正しいです。

クリックイベントでfalseを返しますが、本当に実行したいのは、送信イベントを停止することです。

このように変更します。

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

です。フォームを提出する - >提出しないようにする( 'e.preventDefault();') - >チェッカーされているかどうかをチェックし、警告を表示する。フォームは今すぐ送信されませんが、あなたは分かりますか? – icecub

+0

あなたは正しいです。私はあまりにも迅速にそれらの行をコーディングしました。私の悪い。ありがとう – Robiseb

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

..

+0

私はこれを編集しています。これは – Avishay28

0

これを行うには、event.preventDefault()を使用することができます。 eventは、click関数の最初の引数です。 Reference

関連する問題