Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выбор одного из option по значению поля input (https://javascript.ru/forum/misc/53929-vybor-odnogo-iz-option-po-znacheniyu-polya-input.html)

WePlexus 24.02.2015 18:00

Выбор одного из option по значению поля input
 
<!-- Поле и список 1 -->
<input type="text" name="product_id[]">
<select name="product[]"> 
  <option value="0"> Прейсткурант 1 </option> 
  <option value="1"> Товар 1 </option> 
  <option value="2"> Товар 2 </option> 
  <option value="3"> Товар 3 </option> 
</select>

<!-- Поле и список 2 -->
<input type="text" name="product_id[]">
<select name="product[]"> 
  <option value="0"> Прейсткурант 2 </option> 
  <option value="1"> Товар 1 </option> 
  <option value="2"> Товар 2 </option> 
  <option value="3"> Товар 3 </option> 
</select>


Подскажите, как по значению, введеном в поле "product_id[]" выбрать в списке "product[]" option с таким же value, что у введоного поля.
Например, в первое поле ввели "2" - в первом списке выбралось значение "Товар 2", во втором поле ввели "3" - во втором списке выбралось значение "Товар 3". :help:

laimas 24.02.2015 18:12

Сперва поясните почему и поля ввода и списки имеют одно и тоже имя? Как вы думаете, что при этом получите на сервере?

WePlexus 24.02.2015 18:27

Цитата:

Сообщение от laimas (Сообщение 358147)
Сперва поясните почему и поля ввода и списки имеют одно и тоже имя? Как вы думаете, что при этом получите на сервере?

Это в смысле названия-массивы. Когда проверяю глобальный массив POST, то там названия идут такие: product[0], product[1]. Думал для JS тоже можно по массивам названий проверять.

Тогда можно вот так:
<!-- Поле и список 1 -->
<input type="text" id="product_id_1" name="product_id[]">
<select id="product_1" name="product[]"> 
  <option value="0"> Прейсткурант 1 </option> 
  <option value="1"> Товар 1 </option> 
  <option value="2"> Товар 2 </option> 
  <option value="3"> Товар 3 </option> 
</select>

<!-- Поле и список 2 -->
<input type="text" id="product_id_2" name="product_id[]">
<select id="product_2" name="product[]"> 
  <option value="0"> Прейсткурант 2 </option> 
  <option value="1"> Товар 1 </option> 
  <option value="2"> Товар 2 </option> 
  <option value="3"> Товар 3 </option> 
</select>

danik.js 24.02.2015 18:30

Так не проще?
<input type="text" name="product[]">
<select>

laimas 24.02.2015 18:39

Это в смысле названия-массивы. Когда проверяю глобальный массив POST, то там названия идут такие: product[0], product[1].

Это не такие, а два идентичных набора данных будут - одни под четными индексами, другие под нечетными.

Не знаю к чему такое вообще нужно, но тогда вы не передаете на сервер либо поле ввода, либо список, не указывая имени, как вам danik.js пишет.

WePlexus 24.02.2015 19:07

Цитата:

Сообщение от laimas (Сообщение 358158)
Это в смысле названия-массивы. Когда проверяю глобальный массив POST, то там названия идут такие: product[0], product[1].

Это не такие, а два идентичных набора данных будут - одни под четными индексами, другие под нечетными.

Не знаю к чему такое вообще нужно, но тогда вы не передаете на сервер либо поле ввода, либо список, не указывая имени, как вам danik.js пишет.

С именами кажется разобрался. А как сделать чтобы по номеру из текстового поля выбирался список, для которого в параметре value стоит это число? :)

laimas 24.02.2015 19:48

А действительно, как? Если у вас в примере и в первом, и во втором списке есть одни и те же значения, как можно определить какой из списков нужен?
А чтобы выбрать нужный что нужно проверять - значения их опций или же нечто иное?

danik.js 24.02.2015 20:01

По-простому так:
<input onchange="product_1.value = this.value" />

Но что если в инпут ввели неверное значение?

WePlexus 25.02.2015 09:39

Цитата:

Сообщение от danik.js (Сообщение 358173)
По-простому так:
<input onchange="product_1.value = this.value" />

Но что если в инпут ввели неверное значение?

Если ввели не правильно, то нужный option не выберется.

WePlexus 25.02.2015 09:40

Цитата:

Сообщение от laimas (Сообщение 358170)
А действительно, как? Если у вас в примере и в первом, и во втором списке есть одни и те же значения, как можно определить какой из списков нужен?
А чтобы выбрать нужный что нужно проверять - значения их опций или же нечто иное?

Для идентификации нужных элементов можно использовать id="product_id_1(2)".


Часовой пояс GMT +3, время: 06:04.