При введении на сайте форм для отправки сообщений перестают работать ролловеры, написанные на JS (при чем только в Mozille FireFox, в Опере и IE все нормально).
Это мозилловский глюк или можно что-то сделать?
При введении на сайте форм для отправки сообщений перестают работать ролловеры, написанные на JS (при чем только в Mozille FireFox, в Опере и IE все нормально).
Это мозилловский глюк или можно что-то сделать?
Это не глюк. Это ошибка в коде.
В частности, Firefox не допускает некоторых "сокращений", которые прекрасно воспринимаются IE и Оперой... Представьте конкретный код, разберемся...
Фрагменты кода (относительно форм):
function verify()
{
var str=document.inp.Phone.value;
var int=parseInt(str);
if ( int == 1 || int == 2 || int == 12 )
{
alert("Зима");
return true;
}
}
<table width="100%" border="0">
<tr>
<td background="images/bg.gif" align="left">
Название предприятия</p>
</td>
<td background="images/bg.gif" align="left">
<form name="inp" OnSubmit="return verify()">
<input name="Firm" size="20">
</td>
</tr>
<tr>
<td background="images/bg.gif" align="left">*Контактное лицо</td>
<td background="images/bg.gif" align="left">
<input name="Person" size="20">
</td>
</tr>
<tr>
<td background="images/bg.gif" align="left">*Телефон</td>
<td background="images/bg.gif" align="left">
<input name="Phone" size="20">
</td>
</tr>
<tr>
<td background="images/bg.gif" align="left">E-mail:</td>
<td background="images/bg.gif" align="left">
<input name="Email" size="20">
</td>
</tr>
<tr>
<td background="images/bg.gif" align="left">Текст:</td>
<td background="images/bg.gif" align="left">
<textarea name="Order" rows=8 cols=30></textarea>
</td>
</tr>
<tr>
<td background="images/bg.gif" align="left" class="form">
<input name="submit" type="submit" value="Отправить">
<input type="Reset" name="Reset1" value="Сброс">
</td>
<td background="images/bg.gif" align="right">*Поля обязательные для заполнения
</td>
</tr>
</table>
Все остальное до введения этого кода прекрасно работало в Мозилле
Почему нет закрывающего тэга </form> ?
Открывающий тэг <form> переносим выше тэга <table>.
Пробуем...Код:<form name="inp" OnSubmit="return verify()"> <table width="100%" border="0"> ... </table> </form>
не помогает
Вот этот вот скрипт временно отключаем или удаляем из кода:
Проверяем ролловеры...Код:function verify() { var str=document.inp.Phone.value; var int=parseInt(str); if ( int == 1 || int == 2 || int == 12 ) { alert("Зима"); return true; }}
работает )
значит в ней дело. Интересно что не так?
Возможно, что в ролловерном скрипте присутствуют такие же переменные, как и в проверочном – str и/или int. Попробуйте в проверочном скрипте обозвать их по-другому...
Да нет вроде не повторяется....
Может в написании этой функции ошибка закралась?
Да вроде бы нет никаких ошибок...
У меня подобные функции прекрасно работают во всех браузерах...
Даже в сочетании с ролловерными скриптами...
Попробуйте сократить проверочный скрипт:
И еще раз проверьте ролловеры...Код:function verify() { var a=document.inp.Phone.value; if ( a == 1 || a == 2 || a == 12 ) { alert("Зима"); return true; }}
О! заработало!
Спасибо!