2012-04-06 17 views
0

私はIDを持たないフォームを持っていますが、クラスはまったくありません。私はそれの中にあるすべての入力を取得する必要があります、私はスクリプトを持っていますが、彼らは私のフォームの中にあるかどうかにかかわらず、すべての入力を取得します。投稿フォームからすべての入力を取得

私のクラスにIDを追加することはもちろん可能ですが、フォームに識別子を追加しないで私がしたいことを行う方法はありますか?

私の場合は、ページのすべての入力を繰り返し処理することは論理的ですが、現在のフォームのすべての入力を繰り返し処理することを確認するにはどうすればよいですか?

$('form').submit(function(e){ 
    e.preventDefault(); 

    $('input, textarea').each(function(){ 
     alert('a'); // Alerts on every input, not just inside this form... 
    }); 
}); 

フィドル:http://jsfiddle.net/dsN43/

+0

Bruv - これはあなたに合っていますか、答えとして設定することを私に教えてください:http://jsfiddle.net/qMS7P/31/、乾杯! –

答えて

3

あなただけの現在の要素の中身を検索するjQueryの関数にコンテキスト(第2パラメータ)としてthisを渡すことができます。

$('form').submit(function(e){ 
    e.preventDefault(); 

    $('input, textarea', this).each(function(){ 
     alert('a'); // Alerts on every input inside this form. 
    }); 
}); 
+0

魅力のように動作します、ありがとうございます。 – sed

+0

あなたは大歓迎です:) –

1
$('form').submit(function(e){ 
    e.preventDefault(); 

    $(this).find('input, textarea').each(function(){ 
     alert('a'); // Alerts on every input, just inside this form 
    }); 
}); 
+0

私は文脈(Mateusz Wのような)を使うのが好きですが、これはちょうどうまくいきます。 –

0

あなたはこのようなjQueryのfind()メソッドを使用することができます。

$(document).ready(function(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 

     $(this).find('input, textarea').each(function(){ 
      alert(this.nodeName + ' ' + $(this).attr('name')); 
     }); 
    }); 
});​ 

jsFiddle example(それはあなたが正しいものを見つけることを確認するために、要素のtagNameを/ name属性を印刷するには、デバッグのためのより良いです)

関連する問題