Показать сообщение отдельно
  #1 (permalink)  
Старый 16.04.2011, 19:49
Новичок на форуме
Отправить личное сообщение для Демьян Посмотреть профиль Найти все сообщения от Демьян
 
Регистрация: 16.04.2011
Сообщений: 2

focus() не работает (полуработает)

Привет!

Заметил, что если при загрузке страницы с сервера слой невидим то после включения видимости этого слоя средствами JS невозможно передать фокус текстовому полю формы, которое в этом слое содержится.

Код примерно такой:

<form id="form" name="form">

<select name="spisok" id="spisok" style="width: 155px;"
 onclick="
/* если выбран 1-й вариант из списка - включить слой "div" и передать фокус полю внутри него, иначе скрыть слой "div" */
if (this.value == '1' ) { document.getElementById('div').style.display = 'inline'; } 
else {document.getElementById('div').style.display = 'none';);}">

<option selected="selected" value="0"></option>
<option value="1" onClick="document.getElementById('pole').focus();">1-я строка списка</option>

<div id="div" style="display:none;">
<input id="pole" type="text" style="width:30px; display:none;"/>
</div>

</form>


В результате при щелчке по 1-й строке списка слой становится видимым, но фокус не передаётся, пока не щёлкнешь по этой первой строке списка ещё раз. Если-же слой видим (style="display:inline;") сразу то фокус передаётся нормально.

Объясните пожалуйста, с чем это связано и как заставить правильно работать??
Ответить с цитированием