Форма onSubmit возвращает false не работает в Chrome
Мое возвращаемое ложное утверждение не работает в Chrome, когда я хочу проверить ввод пользователя через javasript. Он запускает тег действия, даже когда я возвращаю false. Вот мой код
<script type="text/javascript">
function testInput(){
if(document.getElementById("input1").value == ""){
alert('error');
return false;
}else{
return true;
}
}
</script>
HTML
<form action="exec.php" method="post" onSubmit="return testInput()">
<input type="text" id="input1" name="input1" />
<input type="submit" value="Exec" />
</form>
2 ответа
Я знаю, что опоздал, но этот ответ может помочь кому-то в будущем. Я столкнулся с той же проблемой сегодня. Прочитав комментарий Джека, я вставил блок try/catch в свою функцию проверки. Это позволило мне предотвратить остановку выполнения (возвращает false, даже если код падает) и распечатать ошибку на панели консоли Chrome. Вы можете попробовать то же самое так:
function testInput(){
try {
if (document.getElementById("input1").value == "") {
alert('error');
return false;
} else {
return true;
}
} catch (e) {
console.error(e.message);
return false;
}
}
Вы уверены, что в поле ввода нет пробелов?
Попробуйте что-то вроде этого if(document.getElementById("input1"). Value.Trim () == "")
Обратите внимание, что tirm не будет нормально работать в IE. Используйте эту работу в случае необходимости http://goo.gl/L802W