<SCRIPT language=javascript1.1>
function send (){
window.navigate (бла бла бла + "?date_home="+document.date_find.date_home.value+"&date_end="+document.date_find.date_end.value);
};
</SCRIPT>
JavaScript в разных браузерах
У меня есть две процедуры
Код:
и
Код:
<SCRIPT language=javascript1.1>
function valid_date (input)
{
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
input.focus();
input.select();
alert("Не верный формат даты!");
};
};
}
</SCRIPT>
function valid_date (input)
{
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
input.focus();
input.select();
alert("Не верный формат даты!");
};
};
}
</SCRIPT>
Суть проблемы в том, что в IE все работает заечательно, но Mozilla выдаёт ошибки:
- Для первого, что window.navigat не является функцией
- Для второго зацикливается т.е. вначале выводик какоето не понятное пустое окно, потом выводит окно с нужным мне сообщением, но при его закрытии открывает снова.
Не подскажите в чем тут дело и как эту проблему решить?
Сзаранее спасибо!
Полный код страницы сдесь:
[html]<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>
<SCRIPT language=javascript1.1>
function send (){
window.navigate (document.url + "?date_home="+document.date_find.date_home.value+"&date_end="+document.date_find.date_end.value);
};
</SCRIPT>
<SCRIPT language=javascript1.1>
function valid_date (input)
{
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
input.focus();
input.select();
alert("Не верный формат даты!");
};
};
}
</SCRIPT>
<form name="date_find" method="POST" action="--WEBBOT-SELF--">
<noscript>Для работы поиска необходима потдержка JavaScript 1.1</noscript>
<p>Формат вворимой даты "dd.mm.yyyy"</p>
<table border="0">
<tr>
<td>Начало периода</td>
<td><input type="text" name="date_home" size="20" onblur="java script:valid_date(date_home);"></td>
</tr>
<tr>
<td>Конец периода</td>
<td><input type="text" name="date_end" size="20" onblur="java script:valid_date(date_end);"></td>
</tr>
</table>
<p><input onclick="java script:send();" type="button" value="Построить" name="Send"></p>
</form>
</body>
</html>[/html]
Код:
location.replace("http://example.com");
Цитата: whitehood
Вместо первой можно использовать replace()
Код:
location.replace("http://example.com");
Спасибо!
А во втором случае ты ставишь focus() перед выводом сообщения, которое заставляет терять фокус ввода и onblur снова срабатывает, затем снова фокус и т.д. Поставь alrt() перед focus()
Цитата: Proger_XP
Желательно использователь document.location.href = 'http://url', т.к replace() не сохранит текущую страницу в истории, и кнопки Вперед/Назад не будут работать
А во втором случае ты ставишь focus() перед выводом сообщения, которое заставляет терять фокус ввода и onblur снова срабатывает, затем снова фокус и т.д. Поставь alrt() перед focus()
А во втором случае ты ставишь focus() перед выводом сообщения, которое заставляет терять фокус ввода и onblur снова срабатывает, затем снова фокус и т.д. Поставь alrt() перед focus()
Спасибо, помогло, но теперь другая проблема - во второй проблеме Mozilla фокус на поле не устанавливает. (
onblur="valid_date(this);"
Цитата: Proger_XP
В onblur как параметр в обоих случаях передавай this
onblur="valid_date(this);"
onblur="valid_date(this);"
Не помогло - активизируется следующий эллемент и если это edit то выделяется весь текст в нём.
Но эти пакости только в Mozile в IE всё работает замечательно...
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
Цитата: Proger_XP
Да, странно, в Опере тоже все работает
Проблема решается установкой таймера
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
Спасибо помогло. )
Помогите плиз?
Скрипт реализует анимацию с использованием списка gif картинок (через определенное время (delay) текущая картинка сменяется на следющую). В IE и Mozilla всё работает. ни одной ошибки, а в Opera не работает совсем и консоль ошибок пустая.
Вот код:
<html>
<head>
<title></title>
</head>
<script language='JavaScript' type='text/JavaScript'>
<!--
delay = 1000;
imageNum = 1;
QImage = 4;
ImagePath = "images/";
// Предварительная загрузка изображений анимации
theImages = new Array()
for(i = 1; i < (QImage+1); i++) {
theImages = new Image();
theImages.src = ImagePath + i + ".gif";
}
function animate() {
document.animation.src = theImages[imageNum].src;
imageNum++;
if(imageNum > QImage) {
imageNum = 1;
}
}
//-->
</script>
<body BGCOLOR="white">
<IMG NAME="animation" SRC="images/1.gif" ALT="[Animation]" onLoad="setTimeout('animate()', delay)">
</body>
</html>
Цитата: Proger_XP
Да, странно, в Опере тоже все работает
Проблема решается установкой таймера
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
{
var input = input;
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
};
};
}
К слову, переменную я в начале не заметил и не использовал, но всё равно заработало хорошо.)
Ее можно было и не ставить, это я зря приписал ее :)
А с моей проблемой есть какие-то решения? Просто нужно очень :)
Цитата: frosty
А с моей проблемой есть какие-то решения? Просто нужно очень :)
Смена картики в JS через DOM тема настолько затертая, что просто лень даже, что говорить особо в свете того, что тебе лень сходить в поиск...