У меня есть динамическая форма с несколькими ввода текста. На некоторых входах у меня есть списки данных, чтобы синхронизировать их вместе: когда я выбираю значение в 1 входе, для других устанавливается соответствующее значение.
Это прекрасно работает, когда все параметры в списках данных уникальны. Однако, когда у меня есть несколько вариантов с одинаковым значением (но с другим идентификатором), я не получаю правильный ... Я получаю только первый вариант.
Вот фрагмент, объясняющий мою проблему.
$("#input1").on("change blur", function() {
let id = $("#datalist1").find("option[value='"+$(this).val()+"']").attr('id')
if (id) {
$("#input2").val($("#datalist2").find("#"+id).val())
$("#idInput1").html(id)
$("#idInput2").html('')
}
})
$("#input2").on("change blur", function() {
let id = $("#datalist2").find("option[value='"+$(this).val()+"']").attr('id')
if (id) {
$("#input1").val($("#datalist1").find("#"+id).val())
$("#idInput2").html(id)
$("#idInput1").html('')
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" list="datalist1" id="input1"/>
<datalist id="datalist1">
<option id="1" value="Option1">Option1-1</option>
<option id="2" value="Option2">Option2</option>
<option id="3" value="Option1">Option1-2</option>
</datalist>
<div id="idInput1"></div>
<input type="text" list="datalist2" id="input2"/>
<datalist id="datalist2">
<option id="1" value="Test1">Test1</option>
<option id="2" value="Test2">Test2</option>
<option id="3" value="Test3">Test3</option>
</datalist>
<div id="idInput2"></div>
Я не могу использовать содержимое параметра для получения идентификатора списка данных (он никогда не будет на входе) ...
Я не могу использовать «выбрать» вместо списка данных ... Пользователи должны иметь возможность добавлять информацию
У кого-нибудь есть решение или идея?
Спасибо!