这是我正在使用的代码段。根据我的期望,代码执行不会停止,表单会被提交。虽然出现了警告框,但在按下“确定”后表格将被提交。
$('.qto').each(function(index) {
if (jQuery.inArray($("#quota-" + (index + 1)).val(), quoatas) != -1) {
alert("Please check the different values you have entered");
return false;
}
quoatas.push($("#quota-" + (index + 1)).val());
});
答案 0 :(得分:0)
问题是因为您的return false
与其中包含的匿名函数相关,而不是表单的submit
处理程序(我假设此代码包含在内)内)。作为一种变通方法,您可以使用传递给提交处理程序的preventDefault()
event
方法。试试这个:
$('#myForm').submit(function(e) {
$('.qto').each(function(index) {
if ($.inArray($("#quota-" + (index + 1)).val(), quoatas) != -1) {
e.preventDefault(); // stop the form submission
alert("Please check the different values you have entered");
}
quoatas.push($("#quota-" + (index + 1)).val());
});
});
答案 1 :(得分:0)
you can use preventDefault() to stop form submission
答案 2 :(得分:0)
您可以简单地使用绑定到这样的表单的事件处理程序,
<!doctype html>
<html>
<head>
<title>Form Submit Handler</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Enter 'demo' as valid data: </p>
<form id="formId" action="javascript:alert( 'Value Valid. Form submitted.' );">
<div>
<input id="firstName" type="text">
<input type="submit" value="Check">
</div>
</form>
<p id="response" style="color:red;"></p>
<script>
$( "#formId" ).submit(function( event ) {
if ( $( "#firstName" ).val() === "demo" ) {
$( "#response" ).empty();
$( "#response" ).text( "Submitted." ).show();
return;
}
$( "#response" ).empty();
$( "#response" ).append( "Not submitted." );
event.preventDefault();
});
</script>
</body>
</html>