powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / style.display= "none" && style.display= "block" не срабатывает в IE
10 сообщений из 10, страница 1 из 1
style.display= "none" && style.display= "block" не срабатывает в IE
    #38540594
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

есть пара js скриптов проверяющих различные переменые в форме на валидность. В HTML вставил такой див
Код: html
1.
<div style="width:900;display:none" id="errormsg"></div>



в случа если с какой то переменой что то не так - вызываю функцию показа ошибки.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
	
function showerror(e){
  if(document.getElementById("errormsg")){
     document.getElementById("errormsg").style.display= "block";
     document.getElementById("errormsg").innerHTML=e;}
  else{alert(e)}
};



В форме идет проверка полей по "onblur"

Во всех браузерах всё работает нормально а в IE нет. Причем если в форме только один раз вызывается ф-ция то и в IE всё работает :(

Я к сожалению в js не силен, но вроде бы тут всё настолько элементарно, что не работать просто не должно...
Подскажите что тут не так?
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38540600
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я взял Ваш код и проверил в IE
http://jsfiddle.net/re5My/
Все работает
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38540643
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<div style="width:900 px ;display:none" id="errormsg"></div>
А так, по коду, должно всё работать.
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541021
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да,
2 часа работы с SQL дали возможность спокойно подумать....
Оказывается проблема растет из другого места...

Проблема в onblur
И происходит слкдующее :(
Если произошла ошибка, то поле получает обратно свое default значение,
и есть еще одна ф-ция которая снова прячет этот злощастный див в том случае если ошибку устранили.:(
Код: javascript
1.
2.
function msgnone(){
if (document.getElementById("errormsg").style.display!="none"){document.getElementById("errormsg").style.display="none";}}


так вот везде всё работает нормально, а в IE почему то onblur обрабатывается дважды, и при втором проходе он спокойно прячет errormsg т.к. ошибка уже устранена :(
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541095
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74в IE почему то onblur обрабатывается дваждывот, попробуйте:
http://jsfiddle.net/RTy5z/
нифига не дважды
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541152
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,

да ты прав!!!
а можешь еще обьяснить почему в этом примере d IE работает counter++ если я ввожу нечисловое значение? В хроме работает все верно....
Или есть более правильный способ выйти из ф-ции?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<html>
<head>
<script TYPE="text/javascript">
	var counter=0;
	function myFunction(val){
	var v=val.value;
	if(isNaN(v)){val.focus();return false;}
	counter++
	document.getElementById("result").innerHTML=counter;}
</script>  
</head>
<body style="border:none;">

<p><input name="t1" onblur="myFunction(this)"></p>
<p><input name="t2" onblur="myFunction(this)"></p>
<p><input name="t3" onblur="myFunction(this)"></p>
<p><input name="t4" onblur="myFunction(this)"></p>
Result
<div id="result"></div>
</body></html>
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541928
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74почему в этом примере d IE работает counter++ если я ввожу нечисловое значение?потому что когда Вы делаете val.focus() то происходит еще один onblur, на этот раз - для того инпута, на который Вы таким образом пытаетесь отменить переход
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541972
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельпотому что когда Вы делаете val.focus() то происходит еще один onblur, на этот раз - для того инпута, на который Вы таким образом пытаетесь отменить переход
наверное должен был сам догадаться :( если бы не работа в Chrome....

Что бы не захломлять ветку лишними топиками, попробую спросить тут - как правильно сделать?

Есть много форм, и есть группа глобальных скриптов для различных проверок.
Хочется чтоб проверки выполнялись по onblur, причем если запись в поле не валидна, переменная получила бы своё Default значение, курсор остался на этом этом поле, и появился бы div с ошибкой. При правильном заполнении поля (частный случай - повторный переход, т.к. Default значение всегда валидно) div должен исчезнуть...
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38541981
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы использовал готовые решения по валидации
jQuery.validate например
...
Рейтинг: 0 / 0
style.display= "none" && style.display= "block" не срабатывает в IE
    #38542035
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганелья бы использовал готовые решения по валидации
спасибо,
насколько я понял по примерам - никто не возвращает пользователя в точку ошибки во время ввода данных.
Если ничего не придумаю лучшего, сделаю по принципу 1го примера по Вашей ссылке.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / style.display= "none" && style.display= "block" не срабатывает в IE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]