为什么表单在验证后没有提交

时间:2016-01-30 20:14:38

标签: javascript jquery html forms

HTML:

<form method="post" name="contact" id="frmContact" action="smail.php">

    ...

    <label for="security" class="smallPercPadTop">Please enter the result:</label> <br /><h3 id="fNum" class="spnSecurity"></h3><h3 id="nCalcType" class="spnSecurity"></h3><h3 id="sNum" class="spnSecurity"></h3> = <input type="text" placeholder="Enter the result" name="security" id="security" class="required input_field_custom" />

    <br /><br />

    <input type="submit" value="Send" id="submit" name="submit" class="submit_btn" />
    <input type="reset" value="Reset" id="reset" name="reset" class="submit_btn" />
</form>

脚本:

$('form').on('submit', function(e) {
    e.preventDefault();
    var vGetResult = $("#security").val();
    if (vGetResult == vResult) { //""vResult"" is a value that I set when the page loads...
        alert("good");
        $("#frmContact").submit();
    }
});

我想要做的是,一旦我验证用户输入的内容与另一个号码相同,那么我想提交表单。我没有提交表格,而是无限地收到提醒声明。

我该如何解决?

4 个答案:

答案 0 :(得分:4)

验证条件失败时,将$("#frmContact").submit()移至else块。您也无需使用$('form').on('submit', function(e) { var vGetResult = $("#security").val(); if (vGetResult == vResult) { //""vResult"" is a value that I set when the page loads... alert("good"); //$("#frmContact").submit(); }else{ e.preventDefault(); } });

重新提交表单
$('form').on('submit', function(e) {        
    var vGetResult = $("#security").val();
    if (vGetResult !== vResult) { //""vResult"" is a value that I set when the page loads...
        e.preventDefault();
    }

    alert("good");
});

或者,您只需将语句修改为

var testamber = function(){
 var ambersands = ["&", "&&", "&&&", "&&", "&",]
 var text = "";
 var i;
 for (i = 0; i < ambersands.length; i++) {
  text += ambersands[i] + "<br>";
 }
 document.getElementById("output").innerHTML  = text;
};

答案 1 :(得分:2)

你的表格无限循环。试试这个简单的代码。

$('form').on('submit', function(e) {
  var vGetResult = $("#security").val();
  if (vGetResult != vResult) 
   {
      e.preventDefault();
   }
});

答案 2 :(得分:1)

返回true以允许表单提交或false压制:

$('#frmContact').on('submit', function(e) {
    if ($("#security").val() == vResult) {
        alert("good");
        return true;
    } else {
        return false;
    }
});

或者,如果不需要警报:

$('#frmContact').on('submit', function(e) {
    return $("#security").val() == vResult;
});

答案 3 :(得分:1)

您可以阻止jQuery事件...并触发本机事件

只需更改

$("#frmContact").submit();

$("#frmContact")[0].submit();