Есть ли фокус?
Добрый день! Очень надо определить, есть ли фокус у конкретного поля ввода, чтобы в зависимости от этого совершать или не совершать какие-либо действия. Методы 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, время: 09:41. |