Есть ли фокус?
Добрый день! Очень надо определить, есть ли фокус у конкретного поля ввода, чтобы в зависимости от этого совершать или не совершать какие-либо действия. Методы onblur и onfocus в IE почему-то не работают. Пробовал писать в тексте или устанавливать динамически, не работает. Можете что-нибудь посоветовать кроме пользоваться другим браузером? В том-то и дело, что заказчик хочет, чтобы работало в Internet Explorer и Firefox.
|
Цитата:
|
Код:
<input type="text" class="s" id="stext" onfocus="stextactive=true" onblur="stextactive=false"> |
и как этот stextactive используется? И для чего, собственно
|
Я же говорил, что-то типа if(stextactive) .... Вверху даже такое есть: var stextactive = false;. А почему не работает? Потому что alert(stextactive) всё время пишет false...
На всякий случай: я не тупее паровоза. Кстати, onfocus="alert()" тоже пробовал... |
Цитата:
а сами события работают ОТЛИЧНО! попробуйте сами на простейшем примере |
Да в том-то и дело, что алерт НЕ СРАБАТЫВАЕТ!
(Про паровоз повторяю...) |
раскажи для начала, зачем тебе нужен фокус, то что ты stextactive в if'е используешь, это понятно... фокус тебе зачем нужен? Что ты с ним делаешь?
Цитата:
p.s. забудь про свой паровоз |
а выглядит, что про паровоз и себя вы врете.
Цитата:
вот вам, убедитесь что у нормальных людей все работает: <html> <head> <script type="text/javascript"> stextactive=null; function focus_text(){ stextactive=true; document.getElementById('mes').innerHTML+='Focus<br/>'; } function blur_text(){ stextactive=false; document.getElementById('mes').innerHTML+='Blur<br/>'; } window.onload=function(){ setInterval(function(){document.getElementById('stextactive').innerHTML=stextactive},100); } </script> </head> <body> <input type="text" onfocus="focus_text()" onblur="blur_text()" /> <div id="mes"></div> <hr> <div id='stextactive'></div> </body> </html> |
Цитата:
Цитата:
|
Да, кусок работает... Странно...
Ладно, пойду поищу ошибки в своей ДНК... |
Цитата:
Хотел привести код, да Gvozd меня опередил ;) |
Цитата:
|
+1
в таком виде тег отлично работает, только что проверил. и ошибки в нем я не вижу. ну, конечно если не брать тот факт что он не закрыт, но это мелочи |
Цитата:
Для xhtml не закрыт. Но руки то за это зачем отрывать. |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Честно скажу, что такое извращённое написание кода удивило своей работоспобностью. Думал обратное, пока не проверил. Однако, переназначать переменную явным образом непосредственно в событии, это как то... :blink: Для приличия бы хотя бы в фукнцию такое назначение перенаправить.
Одного понять не могу, данный код нормально работает и без всякой дополнительной помощи, в чём сыр бор то? |
Цитата:
Цитата:
Цитата:
-------- В следующий раз хорошо подумайте прежде чем предлагать кому то обрывать руки. |
Бредня какая-то...
<input type="text" onfocus="alert('test')" /> Работает в IE6+. Проверенно. Сорри за оффтоп... |
B~Vladi,
а почему оно не должно работать по вашему? |
Автономно - да, работает. Но я создаю всю эту хрень динамически, примерно вот так:
Код:
dom5 = document.createElement('ul'); dom5.className = "s_ul"; |
Попробуйте сначала добавлять элементы в document, и только потом прикреплять обработчики.
|
Цитата:
в тэге ul могут быть только li - http://www.w3.org/TR/html401/struct/lists.html#edef-UL несмотря на это у меня работает Цитата:
|
Да нигде не работает? Что вы прицепились к этому ul? Он здесь совершенно ни при чём. Говорю же, пробовал указывать onfocus явно или присваивать потом - один пень не работает!
|
mindguru,
а полный код можно? |
Цитата:
Цитата:
|
Цитата:
var dom5 = document.createElement('ul'); dom5.className = "s_ul"; var text = document.createElement('input'); text.type='text'; text.onfocus=function(){alert('РАБОТАЕТ')} dom4.appendChild(dom5); dom5.appendChild(text); // Что - куда вставлять неважно... Если не так... |
Цитата:
Цитата:
|
Ничё не понял...:wacko: Можно перевести?!
|
Часовой пояс GMT +3, время: 20:53. |