У меня есть текстовое поле в моей форме, которое заполняется с помощью этого сценария автозаполнения .Когда значение выбирается из предложений автозаполнения, я хочу, чтобы поле заполнялось отображаемым значением из предложений (хранится в массиве arr
), но я хочу, чтобы другое значение было отправлено вместе с запросом POST, когдаФорма отправлена (хранится в массиве arr2
).
Код:
b.innerHTML += "<input type='hidden' value = '" + arr[i] + "'>";
b.addEventListener("click", function(e) {
inp.value = this.getElementsByTagName("input")[0].value;
closeAllLists();
});
a.appendChild(b);
arr
массив содержит значения, которые должны отображаться, в то время как другой массив arr2
содержит фактические значения, которые должны быть переданы во время запроса POST.
То, что я уже пробовал:
1) Я пытался использовать свойство data-value для хранения фактических значений и пытался установить его как inp.value
, но в этом случае, когда я щелкаюпредложение не заполняется автоматически.
b.innerHTML += "<input type='hidden' data-value = '" + arr2[i] + "' value = '" + arr[i] + "'>";
b.addEventListener("click", function(e) {
inp.value = this.getElementsByTagName("input")[0].data-value;
closeAllLists();
});
a.appendChild(b);
2) Я попытался установить свойство value непосредственно на значения из arr2
, но затем, щелкнув по предложению, поле ввода заполняется значением, которое необходимо передать, а не однимэто должно быть отображено.Код ниже:
b.innerHTML += "<input type='hidden' value = '" + arr2[i] + "'>";
b.addEventListener("click", function(e) {
inp.value = this.getElementsByTagName("input")[0].value;
closeAllLists();
});
a.appendChild(b);