处理 jquery 中的多个 ID 并仅更新相同 ID 的输入

Handling multiple id in jquery and update only input of same id

这是我用于自动完成的代码(从 php 数据库我得到 ID 和名称)

<input type="text" id="rubrica_1"><input type="hidden" id="value_1">
<input type="text" id="rubrica_2"><input type="hidden" id="value_2">
<input type="text" id="rubrica_3"><input type="hidden" id="value_3">

那么脚本就是

  $( '[id^=rubrica_]' ).autocomplete({
    source:'content/json/autocomplete.php', 
    minLength:2,
    select: function(event,ui){
      $( '[id^=value_]').val(ui.item.id);
    }
  });   

使用此解决方案,我将所有 value_1、value_2 和 value_3 更新为相同的值...

您可以在 select 函数中使用 $(this) 来引用目标输入元素。连同下一个 select 或定位下一个隐藏输入:

$( '[id^=rubrica_]' ).autocomplete({
source:'content/json/autocomplete.php', 
minLength:2,
select: function(event,ui){
   $(this).next().val(ui.item.id);
 }
});   

您可以使用 class 为相同的元素分配值

<input type="text" id="rubrica_1"><input class="same_id" type="hidden" id="value_1">
<input type="text" id="rubrica_2"><input class="same_id" type="hidden" id="value_2">
<input type="text" id="rubrica_3"><input class="same_id" type="hidden" id="value_3">

$( '[id^=rubrica_]' ).autocomplete({
source:'content/json/autocomplete.php', 
minLength:2,
select: function(event,ui){
  $( '.same_id').val(ui.item.id);
}
 });