警报框不会停止执行/提交表单

时间:2015-07-10 10:30:39

标签: javascript jquery

这是我正在使用的代码段。根据我的期望,代码执行不会停止,表单会被提交。虽然出现了警告框,但在按下“确定”后表格将被提交。

$('.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());
});

3 个答案:

答案 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>