Обработка нескольких идентификаторов в jquery и обновление только ввода того же идентификатора

Это мой код, который я использую для автозаполнения (из php db я получаю идентификатор и имя)

<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 с одинаковыми значениями …

1

Решение

Ты можешь использовать $(this) в функции выбора, которая относится к целевому элементу ввода. вместе со следующим селектором для выбора следующего скрытого ввода:

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

Другие решения

Вы можете использовать класс для присвоения значения тем же элементам

<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);
}
});
0

По вопросам рекламы [email protected]