jQuery を既存のコードに追加する際に問題が発生しました。助けてください。
同じフォーム (同じフォーム名、同じフィールド、同じ送信ボタン、フォームに定義された ID またはクラスなし) がページに数回表示されました。フォーム オブジェクトを渡さずに、jQuery を使用してフォームを検証する必要があります。 、jQueryはどのフォームが送信されたかを知ることができますか?
ご回答ありがとうございます。問題は解決しました:-)
jQuery を既存のコードに追加する際に問題が発生しました。助けてください。
同じフォーム (同じフォーム名、同じフィールド、同じ送信ボタン、フォームに定義された ID またはクラスなし) がページに数回表示されました。フォーム オブジェクトを渡さずに、jQuery を使用してフォームを検証する必要があります。 、jQueryはどのフォームが送信されたかを知ることができますか?
ご回答ありがとうございます。問題は解決しました:-)
質問のコメントから、セレクターとともにフォームのコンテキストを指定する必要があるようです。
$('form').submit(function() {
var form = $(this);
var myInputValue = $("input[name='myinput']", form).val();
// myInputValue is now the value of the myinput control that is
// within the submitted form
});
jquery 関数は、選択のコンテキストであるオプションの2 番目の引数を取ることに注意してください。これは、送信されたフォーム内でのみ入力要素を見つけるのに役立ちます。
ここのドキュメントを確認してください:
http://api.jquery.com/jQuery/#expressioncontext
@NiftyDudeの回答は同じ問題に直面していますが、現在送信中のフォームの子を取得するためにjqueryを特に使用していません。
タグを選択するために、タグに #id または .class が付加されているかどうかは問題ではありません<form>
。
これを試して:
$('form').submit(function () {
//put your ajax submission code here...
});
$("form[name='IDENTIFIER']")
これは、1 つのページに複数のフォームがあり、特定のフォームをターゲットにする場合に便利です。
$('form').submit(function(e) {
// $(this) refers to the current form being submitted
// if you need to, for example iterate over all the inputs
var inputs = $(this)[0].getElementsByTagName('input'); // array of inputs
for(var i = 0; i < inputs.length; i++) { inputs[i].value; }
// this is important to avoid recursive submit
$(this)[0].submit();
return false;
});
$('form').submit(function(){
var form = $(this);
var inputs = $('input', this);
var isValid = true;
//do validation on the inputs of the form submitted.
if (isValid) {
//do something
}
return false;
});
または、送信入力アクションをキャッチすることもできます (これが私がやりたいことです):
$('input[type="submit"]').click(function(event){
event.preventDefault();
var form = $(this).nearest('form');
var inputs = $('input', form).not(this);
var isValid = true;
//validate inputs
if (isValid) form.submit();
});
isValid = true
コードによっては必要ない場合があることに注意してください。いずれかの要素が検証に失敗し、フォームの送信が続行されない場合は、false に設定できます。これを行い、有効であればフォームを送信する検証ライブラリを使用している場合、それは必要ありません。
一部のバリデーターは、失敗した各アイテムに無効なクラスを設定します。フォームを送信する必要があるかどうかを判断するために、そのクラスを持つフォーム内の入力の存在を確認するだけで済みます。