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

如何在jQuery中选择特定的表单元素?,jquery,jquery-selectors,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 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>

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

两次使用相同的ID是无效的,这就是为什么
#name
只找到第一个

您可以尝试:

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

如果您被一个无效页面卡住,并且想要选择所有
#name
s,您可以使用id上的属性选择器:

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

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

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


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

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

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

如果您有一个设置了ID属性的表单(例如frm1),并且 您想要设置一个特定的组合框,没有设置ID,但是设置了名称属性(例如,district);然后使用

$(“#frm1选择[name='district']选项[value='NWFP'])。attr('selected',true)

地区
NWFP
法塔

+1谢谢。还有一件事,如果我想使用多个选择器选择一个特定表单的两个字段,
$('formId field1Id,'formId field2Id')
@Awan-另一个选项是
$('form2 input')
用于所有输入字段,或者
$('form2 input')。过滤器('name=name1],'name=name2')
@charliegriefer,@Kobi:Thanks@charliegriefer-当然,您需要
#field1Id
#field2Id
,我不确定重复ID会如何。值得注意的是
$('input[name=name],'form2').val('Hello World!')在内部由jQuery翻译为
$('#form2')。find('input[name=name')).val('Hello World!')
(有关详细信息,请参阅:)您忘记了名称部分中的引号-如果没有引号,则会出现语法错误
$("input[id=name]").val('Hello World!');
$("#name", '#form2').val("Hello World")
$("#form2 #name").val("Hello World!");