Я пытался с Firefox 3 (Mac) со следующим кодом:
<html>
<head>
<script>
function validate(ele)
{
alert("vali");
return false;
}
function checkValidArray()
{
alert("checkValidArray");
}
</script>
</head>
<body>
<form action="" method="POST" onsubmit="return checkValidArray()">
<input type="text" name="data" onchange="return validate(this);">
<input type="submit" value="Ok">
</form>
</body>
</html>
Кажется, работает. Когда я нажимаю кнопку Ok, всплывают «Vali» и «Check Valid Array».
Сначала я думал, что return false
может быть причиной, по которой форма не была отправлена, но она отправлена (по крайней мере, называется checkValidArray()
).
Теперь, что вы делаете в своих checkValidArray()
и validate()
методах? Что-то особенное? Вы можете разместить код?
РЕДАКТИРОВАТЬ: я тестировал с IE8 и FF3 на окнах, и здесь оба события не запускаются. Понятия не имею почему. Возможно, onblur - это решение, но ПОЧЕМУ onchange не работает? Есть ли конкретная причина или это просто другое несоответствие? (Работает как на FF, так и на Safari на Mac)