1

jQuery を既存のコードに追加する際に問題が発生しました。助けてください。

同じフォーム (同じフォーム名、同じフィールド、同じ送信ボタン、フォームに定義された ID またはクラスなし) がページに数回表示されました。フォーム オブジェクトを渡さずに、jQuery を使用してフォームを検証する必要があります。 、jQueryはどのフォームが送信されたかを知ることができますか?

ご回答ありがとうございます。問題は解決しました:-)

4

5 に答える 5

1

質問のコメントから、セレクターとともにフォームのコンテキストを指定する必要があるようです。

$('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を特に使用していません。

于 2012-04-04T17:36:23.473 に答える
0

タグを選択するために、タグに #id または .class が付加されているかどうかは問題ではありません<form>

これを試して:

$('form').submit(function () {
   //put your ajax submission code here...
});
于 2012-04-04T17:13:33.530 に答える
0

$("form[name='IDENTIFIER']") これは、1 つのページに複数のフォームがあり、特定のフォームをターゲットにする場合に便利です。

于 2012-04-04T17:13:40.427 に答える
0
$('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;
});
于 2012-04-04T17:13:51.403 に答える
0
$('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 に設定できます。これを行い、有効であればフォームを送信する検証ライブラリを使用している場合、それは必要ありません。

一部のバリデーターは、失敗した各アイテムに無効なクラスを設定します。フォームを送信する必要があるかどうかを判断するために、そのクラスを持つフォーム内の入力の存在を確認するだけで済みます。

于 2012-04-04T17:14:40.310 に答える