在event.preventDefault()之后提交

时间:2017-07-17 18:05:54

标签: ajax

我的HTML代码是

    <form id="formoid" action="" title="" method="post" onSubmit="return myfunction(event)">
        <div>
            <label class="title">First Name</label>
            <input type="text" id="name" name="name" >
        </div>
        <div>
            <label class="title">Name</label>
            <input type="text" id="name2" name="name2" >
        </div>
        <div>
            <input type="submit" id="submit"  name="submit" value="Submit">
        </div>
 </form>

我的JS代码是:

 <script src="https://code.jquery.com/jquery-1.9.1.js"></script>

            <script language="JavaScript">
function myfunction(event) {
      event.preventDefault();
   /// Here I am sending a post.. 
 //// how do I keep submitting? 

}
</script>

我制作了一个正常停止提交的功能,之后我想继续提交。我需要停止正常提交,因为我正在使用Ajax发送帖子。

我尝试了许多解决方案,如:

我能做到

$(form).submit(function(e) {
  e.preventDefault();
  var self = this;

  // Code...

  if (true) {
    self.submit();
  } else {
    // Code...
  }
});

但我无法使用表单名称,因为我想返回onSubmit函数

有没有办法在不需要的情况下继续提交   $(form).submit(function(e)code line?

我可以在函数中添加一些内容吗?

1 个答案:

答案 0 :(得分:0)

使用您的代码,我认为如果您执行formoid.submit(),您可能会重新启动myfunction()(或者我可能错了)。

为了保持安全,我只会使用onclick代替onsubmit

<强> HTML

<form id="formoid" action="" title="" method="post">
    <!-- etc -->
    <div>
        <input type="button" id="submit" name="submit" value="Submit" onclick="myfunction()">
        <!-- note the use of type="button" to prevent the form from submitting normally -->
    </div>
</form>

<强>的JavaScript

var httpRequest;

// do the ajax call
function myfunction() {
    httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = callback;
    httpRequest.open('POST', 'some-path');
    httpRequest.send();
}

// once the callback has fired, submit the form
function callback () {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
        if (httpRequest.status === 200) {
            formoid.submit(); // submit form  
        }
    }
}

取自here

的AJAX代码示例