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

我有两个这样的forms:

<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的 名字字段中插入文本。 我正在使用以下jQuery代码,但它填充form1的 名称字段。

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

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

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

你可以试试:

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

要么,

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

如果你遇到了一个无效的页面,想要select所有的#name ,你可以使用ID:

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

虽然它是无效的HTML,但你可以使用select器上下文来限制你的select器在你的情况下,它会是这样的:

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

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

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

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

http://api.jquery.com/descendant-selector/

我知道这个问题是关于设置一个input,但万一如果你想设置一个combobox然后(我searchnetworking,没有find任何东西,这个地方似乎是一个正确的地方引导别人)

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

 $("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <form id="frm1"> <select name="district"> <option value="" disabled="" selected="" hidden="">Area ...</option> <option value="NWFP">NWFP</option> <option value="FATA">FATA</option> </select> </form> 
 $("#name", '#form2').val("Hello World")