2011-07-08 21 views
0

獲取特定形式值我有一個看起來像這樣

<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提交監聽任何一類名爲ajax_form

$(document).ready(function() { 

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

    alert(JSON.stringify($(this).serializeObject())); 
    alert($("input:form_method").val()); 
    return false; 
}); 
形式

});

提交函數的第一部分對錶單元素進行了serlial化,並將它們放入json字符串中以便發送ajax請求。但是我需要在創建ajax請求之前提取id #form_method的值,但似乎無法弄清楚如何使用$ this來引用它。我試圖得到這個$的形式孩子,但沒有做到這一點。

+2

你不能簡單地使用ID選擇器? '警報($( 「#form_method」)VAL());'? – Chandu

+0

我應該指定它們可能是多個表單元素,ID爲form_method,因此我必須選擇正確的一個。 – Brian

+0

ID應該是HTML元素中唯一的。如果他們重複,那麼你應該使用普通的類名,而不是使用相同的ID。 – Chandu

回答

1

你應該嘗試的$("input:form_method").val()$("input#form_method").val()代替

其實只有$("#form_method").val()應該完美地完成這項工作。

最終,你可以把你在頁面上的多個ajax_form指定與$("#form_method",this).val()搜索的範圍,但在這種情況下,你應該重新考慮使用多個時間相同的ID作爲ID必須是唯一的

+0

$(「#form_method」,this).val()正是我所需要的,謝謝 – Brian

2

你在你的選擇器中錯過了#。這應該是訣竅:

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

是的,這將工作唯一的事情是可能有每頁多個表單,所以我需要抓住每個窗體的正確值 – Brian