[英]React: How to update the state of an object when a user selects a value from a drop-down menu?
[英]How to determine which drop-down is changed from a number of selects sharing same name as an array
我在表中的行中有许多下拉列表(如数十个),它们具有相同的名称和方括号(objects []),以便在发布时可以将它们的值作为数组使用。
<tr 1>
<select name="objects[]">
<option value='Choice 1'>Choice 1</option>
<option value='Choice 2'>Choice 2</option>
</select>
</tr>
<tr 2>
<select name="objects[]">
<option value='Choice 1'>Choice 1</option>
<option value='Choice 2'>Choice 2</option>
</select>
</tr>
问题当我更改下拉列表的值时,是否可以使用jquery / js唯一标识从该组下拉列表中更改哪个下拉列表的值? 即获取下拉列表的索引。
用例是在同一行中的更改后的下拉列表旁边填充一个文本字段,由于它们都使用[]共享相同的名称,因此我想确定在正确的位置更改了哪个字段以更新文本字段。
谢谢。
无需获取元素的索引,我们可以使用.on()
函数监视更改,将其附加到所有select
元素,然后使用.val()
获取值并将其设置为我们使用.next
函数找到相邻input
。
//optional code - for initalization $('select').each(function(){ $(this).next( "input" ).val($(this).val()); }); //optional code - for initalization $('select').on("change", function(){ $(this).next( "input" ).val($(this).val()); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <tr 1> <select name="objects[]"> <option value='Choice 1'>Choice 1</option> <option value='Choice 2'>Choice 2</option> </select> <input type="text"/> </tr> <tr 2> <select name="objects[]"> <option value='Choice 1'>Choice 1</option> <option value='Choice 2'>Choice 2</option> </select> <input type="text"/> </tr>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.