Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   выделить по умолчанию нужный индекс в Select (https://javascript.ru/forum/dom-window/3759-vydelit-po-umolchaniyu-nuzhnyjj-indeks-v-select.html)

Andrej_2 20.05.2009 20:26

выделить по умолчанию нужный индекс в Select
 
Что-то у меня не работает сабж. А почему? Не поможете разобраться?


<select name="razm" onChange="bla-bla(this.form.razm.options[this.form.razm.selectedIndex].value);this.selectedIndex=3">
	<option value="">выбрать</option>
	<option value="9px">9px</option>
	<option value="10px">10px</option>
	<option value="11px">11px</option>
	<option value="12px">12px</option>
</select>


хотелось бы, чтобы this.selectedIndex=3; ставил выделение сразу на 4-ю позицию и показывал ее.

Gvozd 20.05.2009 20:30

во первых, почему вы свой код поместили в onchange?
вот на это событие он и вызовется
вызывайте код например на window.onload
во вторых, что за имя функции bla-bla()?
имена функций не могут содержать дефиса

x-yuri 20.05.2009 20:43

похоже, идеальное решение следующее:
<select name="razm">
    <option value="11px">11px</option>
</select>

все остальное лишнее, все равно пользователь сможет выбрать только 3-ий пункт

Andrej_2 20.05.2009 20:52

bla-bla написал от балды, т.к. здесь функция не важна. Спасибо, что указали на недопустимость тире в именах функций. Не знал.

Функция вызывается по onchange Select-a. Получается, я действительно указал выставить селект только по onchange, после вызова функции.

А как тогда можно записать необходимость выделения рядом? В смысле, чтобы не в теле документа, и чтобы не вызывать для этого другую специальную функцию? Типа как простой selected в HTML, но для удобства позиционируемый по Index?

Форму меняю оперативно, SELECT компоную полностью в JS, в зависимости от введенного в другом поле значения должен заново вырисовываться весь SELECT и если введенное в другом поле значение совпадает с определенным значением поля SELECT , то это значение выделяется. Это моя конечная задумка. Т.е. я хочу сказать, что window.onload здесь наверное никак не подходит.

Gvozd 20.05.2009 20:56

ну, тогда после того, как создаете новый SELECT, вот после этого и вызывайте функцию по выбору того или иного пункта

Andrej_2 20.05.2009 20:57

Цитата:

Сообщение от x-yuri (Сообщение 19598)
похоже, идеальное решение следующее:
...

Спасибо! Нет, у меня несколько иная задача: нужно, чтобы "подсвечивалось" нужное значение не "касаясь" мышкой конкретного Selekt, но и не перегружая браузер на другие емкие события. Т.е. создал динамически поле SELECT, сразу же выделил нужный пункт, вычисленный по его индексу.

Andrej_2 20.05.2009 21:00

Цитата:

Сообщение от Gvozd (Сообщение 19600)
ну, тогда после того, как создаете новый SELECT, вот после этого и вызывайте функцию по выбору того или иного пункта

Ой блин, я не просто новичок в JS, я еще и тупой оказывается! До такого не додумался! Gvozd, спасибо Вам большое! Сейчас попробую.

Andrej_2 20.05.2009 21:08

Ок. Все получилось. Тему можно закрывать. Большое спасибо.

x-yuri 20.05.2009 21:14

только не функцию, а что-то типа select.selectedIndex = ..., причем не в обработчике onchange
а то у меня сложилось впечатление, что нужно select.onchange вызвать, а внутри все тот же this.selectedIndex = ...


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