送信を実行する前に、ユーザーがボタンをクリックしたかどうかを確認する必要があります。
現在、$(document).ready(function(){
ボタンが押されたかどうかを確認するコードを使用しています。
この「ボタン」は単純div
で、クリックすると画像が変わる背景画像が付いています。if ステートメントを作成できるように、変数を追加する必要がありますね。
JQにpreventDefault機能があることは知っていますが、うまく機能しませんでした。
手伝ってくれてありがとう
送信を実行する前に、ユーザーがボタンをクリックしたかどうかを確認する必要があります。
現在、$(document).ready(function(){
ボタンが押されたかどうかを確認するコードを使用しています。
この「ボタン」は単純div
で、クリックすると画像が変わる背景画像が付いています。if ステートメントを作成できるように、変数を追加する必要がありますね。
JQにpreventDefault機能があることは知っていますが、うまく機能しませんでした。
手伝ってくれてありがとう
jQuery('#yourForm').bind('submit',function(e){
//do your test
//if fails
e.preventDefault();
});
ボタンがクリックされたかどうかを格納する別の入力要素を追加します
<div id="divElement">
<input type="hidden" name="buttonIsClicked" value="0" />
</div>
div のイベント ハンドラーを設定します。
$("#divElement").click( function() {
$(this).children("input[name=buttonIsClicked]").val(1);
});
入力要素を div 内に追加すると、DOM 全体ではなく div 要素の下でのみ検索する必要があるため、コードの実行が高速になります。入力要素を外部に配置したい場合は、次を使用してコードを最適化することもできます
$(this).parent().find("input[type=buttonIsClicked]");
フォームの送信時に、これを確認できます
$(myFormElement).submit(function() {
if($(this).find("input[name=buttonIsClicked]").val() == 0)
return false;
//proceed here if the button div is clicked
}
$('#form_element').submit(function() {
return false; // do this if you don't want to submit the form
});
必要な数の送信イベントを追加できます。1 つ以上の送信イベントが false を返す場合、フォームは送信されません。
これはあなたの質問に答えていますか?
$(document).ready(function(){
$('#yourDiv').click(function() {
$('#yourForm').submit();
});
});
「ボタン div」にクリック ハンドラを追加しました。クリックすると、フォームが送信されます。したがって、フォームに送信ボタンを配置する必要はありません。div ボタンだけです。