2011-07-08 14 views
0

親$セルフクリック機能を使用してjqueryの内の特定のフォームの値を取得します私はこのはどのように私は

<form action="#" class="ajax_form" method="post" id="comment_form" accept-charset="utf-8"> 
<textarea name="comment" id="form_comment"></textarea> 
<input name="another_field" value="some data" type="text" id="form_another_field" /> 
<input name="method" value="some_method" type="hidden" id="form_method" /> 
<input name="submit" value="Submit" type="submit" id="form_submit" /> 
</form> 

のようなものを見て、jQueryの

$(document).ready(function() { 

$('.ajax_form').submit(function() { 

    alert(JSON.stringify($(this).serializeObject())); 
    alert($("input:form_method").val()); 
    return false; 
}); 
ajax_formという名前の任意のクラスのリスナーを提出するフォームを持っています

});

submit関数の最初の部分はフォーム要素を直列化し、それらをajax要求のjson文字列に入れます。しかし、私はajaxリクエストを作成する前にid #form_methodの値を抽出する必要がありますが、これを$ thisを使って参照する方法は分かりません。私は$ thisのフォームの子を手に入れようとしましたが、やっても失敗しました。

+2

IDセレクタを使用するだけでいいですか? 'alert($("#form_method ")。val());'? – Chandu

+0

私は正しいものを選択しなければならないので、id_formatが同じページ上にあるid_methodを持つ複数のフォーム要素であることを指定する必要があります。 – Brian

+0

IDはHTML要素間で一意であるはずです。繰り返している場合は、同じIDを使用する代わりに、共通のクラス名を使用する必要があります。 – Chandu

答えて

1

あなただけ$("#form_method").val()は完全に仕事をする必要があります実際には代わりに$("input:form_method").val()

$("input#form_method").val()を試してみてください。

最終的にあなたがページ上に複数のajax_formを持っている場合は$("#form_method",this).val()で検索のコンテキストを指定置いてもよいが、idはあなたのユニークな

+0

$( "#form_method"、this).val()は正確に私が必要としていたものです – Brian

2

なければならないような場合には、複数の時間に同じIDを使用して再考すべきですあなたのセレクタに#がありません。これはトリックを行う必要があります:

$("#form_method").val(); 
+0

はい、それは唯一の問題は1ページあたり複数のフォームが存在する可能性があるのでフォームごとに正しい値を取得する必要がある – Brian