收到AJAX响应后提交表单

时间:2014-07-09 19:50:56

标签: javascript ajax forms submit form-submit

我有一个用例,在将表单提交到其操作目标之前,将表单提交数据发送到不同的服务器。 因此,我需要延迟表单提交,直到收到来自AJAX请求的响应。

我的限制是我不能使用jQuery函数,因为我正在为产品开发自己的库集,这必须足够精简。

现在,我可以使用jQuery在表单上执行类似unbind(“submit”)事件的操作,可以在AJAX函数中调用它作为回调。但同样,我的选择有限。

我当前的表单跟踪代码如下:

form.onsubmit = function() {
          event.preventDefault();            
          var url = "/lead/track/trackId/" + trackId;
          var data = {};
          for (var prop in fields) {
            data[prop] = document.getElementsByName(prop)[0].value;
          }
          data['planId'] = planId;
          data['visitorId'] = visitor_id;
          var http_request = new XMLHttpRequest();
          http_request.onreadystatechange  = function(){
            if (http_request.readyState == 4  )
            {
                  setTimeout(function() {document.forms[0].submit();}, 0);
            }
          }

event.preventDefault()完全删除了提交操作。如果我删除此行,表单将转到提交而不等待AJAX​​响应。 document.forms [0] .submit()也没有帮助。它没有接收表单对象,并显示“对象不是函数”。这可能是因为此代码是从远程文件异步加载的。

已经看过多个jQuery替代品。所以,我需要一个特别需要基于Javascript的原生解决方案。 感谢

0 个答案:

没有答案