如何使用jQuery从<input>标签中检索值?

8

我需要隐藏两个输入框,如下:

<input name="foo" value="bar">
<input name="foo1" value="bar1">

我想使用jQuery选择器引擎获取这两个值,并将它们POST到服务器。如何实现?
2个回答

28

由于"foo"和"foo1"是您输入字段的名称,所以您将无法使用jQuery的id选择器(#) ,而必须改用属性选择器:

var foo = $("[name='foo']").val();
var foo1 = $("[name='foo1']").val();

从性能角度来看,那不是最佳选择。最好设置输入字段的id并使用id选择器(例如$("#foo"))或至少为属性选择器提供上下文:

var form = $("#myForm"); // or $("form"), or any selector matching an element containing your input fields
var foo = $("[name='foo']", form).val();
var foo1 = $("[name='foo1']", form).val();

它们可能不像$('#foo')一样表现优秀,但除非有问题,否则不用太担心。要知道,过早地进行优化可能会带来反效果。 - Andrew Hedges
@Andrew,你说得完全正确,在大多数情况下用户看不出区别。这更多是一种最佳实践,特别是考虑到名称可能不唯一。 - ybo
1
或者,您可以像这样直接访问字段的值:var v = $("#form [name='foo']").val() - h7r

5

为加快获取值的过程,建议使用id或者class。

ID版本(假设输入框的id为“foo”)

var value1 = $('#foo').val();

类版本(假设输入具有class = 'foo')

var value1 = $('.foo').val();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接