通过JS提交表单不需要经过jquery


Form submission via JS does not pass through jquery

我在'index.php '中有一个表单

<form action="" method="POST" id="myForm" name="myForm">
    <input type="text" name="myInput" id="myInput" maxlength="9" onChange="runOnce();" />
</form>

和在我的JS代码我有:

function runOnce() {
    var form = document.getElementById("myForm");
    form.submit();
}
我也有JS来处理提交
$(document).ready(function() {
    $("#myForm").submit(function(event) {
         // prevent page refresh
         event.preventDefault();
         $.ajax({
             url: 'index.php',
             type: 'post',
             data: {
                 "myInput" : $('#myInput').val(), 
             },
             success: function(response) {
                 alert(response);
             }
         });
    });
});

PHP部分有

if (isset($_POST["myInput"])) {
    // do something. . . 
}

问题是,页面仍在刷新,即使我有event.preventDefault();

我做错了什么?

您可以简单地使用:

function runOnce() {
    $("#myForm").submit(); // this will trigger jQuery submit handler and so preventing default behaviour
}