我有两个这样的形式:
<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!');
那么如何只选择特定的表单元素呢?
答案 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! ");
答案 2 :(得分:5)
答案 3 :(得分:2)
我知道问题是关于设置输入但是以防万一你想要设置一个组合框(我搜索它并没有找到任何东西,这个地方似乎是指导他人的正确位置)
如果你有一个具有ID属性设置的表单(例如frm1)和 你想设置一个特定的特定组合框,没有设置ID但名称属性设置(例如区);然后使用
filenames
$("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true);
答案 4 :(得分:-2)
$("#name", '#form2').val("Hello World")