Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Поиск в select (https://javascript.ru/forum/events/27863-poisk-v-select.html)

ljubomir 27.04.2012 13:32

Поиск в select
 
Добрый день. Не могу решить простую задачку. Помогите пожалуйста.(перерыл весь инет, похожее есть но решить не смог.)

Вот есть select.

<select id="user_id">
<option value="1">Пункт 1</option>
<option value="2">Пункт 2</option>
<option value="3">Пункт 3</option>
</select>

нужно сделать выбранным элемент зная текст. Что-то вроде такого, только чтоб работало(без jquery желательно) :

document.getElementById("user_id").options[text='Пункт 2'].selected = true;

cyber 27.04.2012 15:00

Цитата:

Сообщение от ljubomir (Сообщение 171561)
Добрый день. Не могу решить простую задачку. Помогите пожалуйста.(перерыл весь инет, похожее есть но решить не смог.)

Вот есть select.

<select id="user_id">
<option value="1">Пункт 1</option>
<option value="2">Пункт 2</option>
<option value="3">Пункт 3</option>
</select>

нужно сделать выбранным элемент зная текст. Что-то вроде такого, только чтоб работало(без jquery желательно) :

document.getElementById("user_id").options[text='Пункт 2'].selected = true;

а теперь подумайте , и нормально опишите задачу, потому что нефига не понятно.

ljubomir 27.04.2012 15:19

Блин. У меня есть select с очень большим кол-вом элементов. Мне нужно в нем сделать выбранным (selected = true) элемент который введет пользователь.

Говоря проще : в окошко рядом с селектом пользователь вводит "Пункт 1" , жмет кнопку и в селекте выбранным элементом становится элемент с который содержит "Пункт 1".

Как еще объяснить? Поиск в select-е.

cyber 27.04.2012 15:44

document.getElementById("id select").parentNode //получиш массив тегов <option > и через innerHTML получаеш значения , а потом сравниваеш

bes 27.04.2012 15:50

Код:

<select id="user_id">
<option value="1">Пункт 1</option>
<option value="2">Пункт 2</option>
<option value="3">Пункт 3</option>
</select>

<input  id="inp">

<input type="button" value="choose"
  onclick = "
    a = document.getElementById('user_id');
    b = document.getElementById('inp');
    for (i=1; i<a.options.length; i++) {
      if (a.options[i].innerHTML == b.value) {a.options[i].selected = true; return}
    }
">

Возможно есть более простые варианты решения

cyber 27.04.2012 16:04

a.options - не знал что так можно=)

Раед 27.04.2012 16:18

bes,
Что за привычка так код оформлять?

http://javascript.ru/formatting.

bes 27.04.2012 17:05

Цитата:

Сообщение от cyber
a.options - не знал что так можно

ну да, главное понимать где ссылки, а где обычные значения

Цитата:

Сообщение от Раед
bes,
Что за привычка так код оформлять?

Если вы про bb-теги code, то так проще скопировать код (код есть код, тут тебе и html и javascript), не надо дополнительное окно открывать, а копирование из bb-тегов js не сохраняет форматирования, выделением сами понимаете, с цифрами или надо их отключить, а потом выделить, а так раз-два (выделил-скопировал).
А если про то, что if в одну строчку написал, то извините.

cyber 27.04.2012 17:08

Цитата:

Сообщение от Раед (Сообщение 171588)
bes,
Что за привычка так код оформлять?

http://javascript.ru/formatting.

тут не так много кода чтоб можно было запутатся, и тот кому нужно разберется=)

Раед 27.04.2012 17:12

Цитата:

Сообщение от bes
Если вы про bb-теги code

Да, про это

Цитата:

Сообщение от cyber
тут не так много кода чтоб можно было запутатся, и тот кому нужно разберется=)

Ну да, только с форматированием всё равно лучше


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