如何在jQuery中选择特定的表单元素?

时间:2010-12-08 12:17:54

标签: jquery jquery-selectors

我有两个这样的形式:

<form id='form1' name='form1'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

<form id='form2' name='form2'>
  <input name='name' id='name'>
  <input name='name2' id='name2'>
</form>

现在我想在 form2 名称字段中插入文字。我使用的是following jQuery code,但它填写 form1 名称字段。

$("#name").val('Hello World!');

那么如何只选择特定的表单元素呢?

5 个答案:

答案 0 :(得分:121)

两次使用相同的ID无效,这就是#name只能找到第一个ID的原因。

您可以尝试:

$("#form2 input").val('Hello World!');

或者,

$("#form2 input[name=name]").val('Hello World!');

如果您遇到无效页面并希望选择所有#name,则可以在ID上使用属性选择器:

$("input[id=name]").val('Hello World!');

答案 1 :(得分:8)

虽然它是无效的html但您可以使用选择器上下文来限制您的选择器 在你的情况下,它会像:

$("input[name='name']" , "#form2").val("Hello World! ");

http://api.jquery.com/jquery/#selector-context

答案 2 :(得分:5)

我更喜欢#form2的id后代选择器,如下所示:

$("#form2 #name").val("Hello World!");

here

答案 3 :(得分:2)

我知道问题是关于设置输入但是以防万一你想要设置一个组合框(我搜索它并没有找到任何东西,这个地方似乎是指导他人的正确位置)

如果你有一个具有ID属性设置的表单(例如frm1)和 你想设置一个特定的特定组合框,没有设置ID但名称属性设置(例如区);然后使用

filenames
$("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true);

答案 4 :(得分:-2)

$("#name", '#form2').val("Hello World")