2011-07-08 22 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