如何在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!");