Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2009, 13:23
Аспирант
Отправить личное сообщение для Andrej_2 Посмотреть профиль Найти все сообщения от Andrej_2
 
Регистрация: 14.05.2009
Сообщений: 30

Оставить фокус в поле
Есть динамически создаваемое текстовое поле, его изменение отлавливается через onpropertychange, но фокус теряется. Нужно дать команду после обработки вернуть фокус в это поле, чтобы продолжать изменения.

Делаю так:

<input type=text name="aga" value="изменяем" onpropertychange="raz('a','b','c'),this.forms.aga.focus();">


Не получается. Как правильнее?
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2009, 20:19
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

onpropertychange только для IE. Где изменяете значение поля, там же и возвращайте ему фокус ввода.
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2009, 14:08
Аспирант
Отправить личное сообщение для Andrej_2 Посмотреть профиль Найти все сообщения от Andrej_2
 
Регистрация: 14.05.2009
Сообщений: 30

Спасибо!
Мне только для ИЕ и надо (это для 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 по-другому?
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2009, 12:18
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Сообщение от Andrej_2
<input type=text name="aga" value="изменяем" onpropertychange="raz('a','b','c'),this.forms.aga. focus();">
<input type=text name="aga" value="изменяем" onpropertychange="raz('a','b','c');this.focus();">
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2009, 13:15
Аспирант
Отправить личное сообщение для Andrej_2 Посмотреть профиль Найти все сообщения от Andrej_2
 
Регистрация: 14.05.2009
Сообщений: 30

Спасибо! Я, кажется, уже все перепробовал -- не помогает. Склоняюсь к мнению, что это баг ИЕ.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Ввод в тестовое поле по маске vesna Общие вопросы Javascript 15 04.05.2009 13:10
В IE не наводиться фокус Mad LIR Internet Explorer 3 30.04.2009 14:26
Как убрать фокус с селекта в IE6? Shurik_ Общие вопросы Javascript 2 05.11.2008 17:14
трабл с перехватом некоторых символов в поле ввода barbiturat Events/DOM/Window 5 28.08.2008 14:32