Оставить фокус в поле
Есть динамически создаваемое текстовое поле, его изменение отлавливается через onpropertychange, но фокус теряется. Нужно дать команду после обработки вернуть фокус в это поле, чтобы продолжать изменения.
Делаю так: <input type=text name="aga" value="изменяем" onpropertychange="raz('a','b','c'),this.forms.aga.focus();"> Не получается. Как правильнее? |
onpropertychange только для IE. Где изменяете значение поля, там же и возвращайте ему фокус ввода.
|
Спасибо!
Мне только для ИЕ и надо (это для CMS). Нифига не получается, что только не делаю. Неужели это баг ИЕ? Вот для отладки создал проблемный участок: <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </HEAD> <BODY> <script> function obrabotka(tshto_redaktirovat,tshto_obrabotat,znatsenie) { var vstavka = ''; vstavka+= '<input type=text '; vstavka+='name=\"'; vstavka+='' + tshto_redaktirovat + '_' + tshto_obrabotat + ''; vstavka+='\" '; vstavka+='id=\"'; vstavka+='vnutri_' + tshto_redaktirovat + '_' + tshto_obrabotat + ''; vstavka+='\" '; vstavka+='value=\"'; vstavka+='' + znatsenie + ''; vstavka+='\" '; vstavka+='onpropertychange=\"obrabotka(\'' + tshto_redaktirovat + '\',\'' + tshto_obrabotat + '\',value)\">'; document.getElementById('pokaz_' + tshto_redaktirovat + '_' + tshto_obrabotat).innerHTML=znatsenie;//--показываю, что изменяю document.getElementById('' + tshto_redaktirovat + '_' + tshto_obrabotat).innerHTML=vstavka;//--заменяю поле document.getElementById('vnutri_' + tshto_redaktirovat + '_' + tshto_obrabotat).focus();//--пробую ставить фокус па id поля //document.forms.ugu('' + tshto_redaktirovat + '_' + tshto_obrabotat).focus();//--пробую ставить фокус через имя поля } </script> <form name="ugu"> <span id=pokaz_pervoe_pole></span> <br> <span id=pervoe_pole><u onclick="obrabotka('pervoe','pole','текст1')">Изменить первое поле</u></span> <br><br> <hr> <br><br> <span id=pokaz_vtoroe_pole></span> <br> <span id=vtoroe_pole><u onclick="obrabotka('vtoroe','pole','текст2')">Изменить второе поле</u></span> </form> </BODY> </HTML> Что интересно, если, скажем, focus() заменяю на select(), то выделяет правильно. Значит, остальное в принципе верно. Если заменяю onpropertychange на onchange, то работает, но не так, как мне надо. Мне надо именно менять в режиме реального времени. Может, можно как-то эмулировать onpropertychange по-другому? |
Цитата:
<input type=text name="aga" value="изменяем" onpropertychange="raz('a','b','c');this.focus();"> |
Спасибо! Я, кажется, уже все перепробовал -- не помогает. Склоняюсь к мнению, что это баг ИЕ.
|
Часовой пояс GMT +3, время: 17:12. |