Я потратил час, работая над этим, поэтому я буду расстроен, когда окажется, что это просто одна цитата в неправильном месте или что-то в этом роде.Возвращение false игнорируется onsubmit
Я делаю базовую HTML-страницу для проверки базового ввода формы проверки. Если я сброшу return false в начале функции validateForm(), он будет работать так, как ожидалось. Однако, если он находится в цикле проверки (как показано ниже), он не работает и форма отправляется. (hello.php просто выводит мир привет).
Все диагностические предупреждения, которые здесь запускаются, как и ожидалось ..., включая одно прямо перед возвратом-ложь. (когда я оставляю входной пробел).
Я чувствую, что мне не хватает чего-то очень очевидного, но не могу понять, что это такое.
<?php
echo <<<END
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>Test</title>
<script type="text/javascript">
$(document).ready(function(){
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
$("input").blur(function(){
$(this).css("background-color","#ffffff");
});
});
function validateForm() {
alert("Validating");
$("form[name=queryForm]").find(":input[type=text]").each(function() {
alert("Checking " + $(this).attr('name'));
if($(this).val()==null || $(this).val()=="") {
$(this).val('REQUIRED');
$(this).css("background-color","#ffbbbb");
alert($(this).attr('name') + ' must not be left blank.');
return false;
}
}); // end of the each function
}
</script>
</head>
<body>
<form name="queryForm" action="hello.php" onsubmit="return validateForm();" method="post">
<input type="text" name="First Name"><br>
<input type="text" name="Last Name">
<input type="submit" value="Submit">
</form>
</body>
</html>
END;
?>
Установка varible и использовать это в качестве моего возвращения за пределы функции «конца» работает. Но почему? «Использование return inidw .each() не даст вам желаемого результата». Почему нет? Спасибо ... – lowcrawler
@lowcrawler return внутри каждого() вызовет функцию обратного вызова для каждого(). Возврат false приведет к поломке каждого из них. –