2013-06-01 14 views
5

Ok、私のsubmitボタンにpreventDefaultを設定すると、フォームの送信を停止できます。その結果、ユーザーに必須のフィールドを通知せず、ボタン上でクリックイベントを実行するだけです。jQueryのpreventDefaultとrequiredフォームの入力を組み合わせる

送信者ハンドラにpreventDefaultを追加すると、必要なフィールドが表示されますが、ボタンに関連付けられたクリックイベントは発生します。

私は両方が必要です。

<form action="" method="post"> 
    <input type="text" class="class" id="id" name="name" required="required" /> 
</form> 

今JS:

$("button").click(function(event){ 
    event.preventDefault(); 
    //performs function 
}); 

これは関係なく、必要なフォーム入力の、クリックイベントを発生させます。

$("form").submit(function(event){ 
    event.preventDefault(); 
}); 
$("button").click(function(){ 
    //performs function 
}); 

これは、ユーザーに必要なメッセージを表示しますが、依然として送信ボタン機能を実行します。私はどのようにして両方を行うのですか?私はこれで見つけることができる他のいくつかの質問を見てきましたが、ほとんどの場合、preventDefaultをform.submitに追加することで答えられるようです。

+0

この '$( "フォーム")を試してみてください({ falseを返す;} 機能(イベント));提出する。' –

答えて

4

私は実際には2つのことをやってみる必要がありました。

私はbutton.click関数がデフォルトでフォームを送信するので、これはまったく必要ありませんでした。私はちょうど代わりにform.submitの中にbutton.click関数を置く必要があった。

$("form").submit(function(event){ 
    //perform button function 
    return false; 
}); 
+0

はい!これはとても分かりやすいようです、ありがとう! :) – andrei

0

送信イベントを手動で発生させます。

$("button").click(function(event) { 
    event.preventDefault(); 

    $('form').submit(); 
}); 
関連する問題