检查表格使用条件提交?

| 有没有一种方法可以检查是否使用if语句提交表单? 我正在尝试编写一个函数,无论用户做什么,信息总是被接收并显示给他们。但是,如果用户提交表单,它将把数据发送到数据库并首先更新它。 我一直在尝试寻找事件或方法来帮助我解决这个问题,但似乎找不到任何有用的方法。 函数getData(){
if ( FORM SUBMITTED ) {
    //POST and send
    request.open(\"POST\", url, true);
    request.onreadystatechange = useResponse;
    request.send(str);
}

//GET and display
request.open(\"GET\", url, true);
request.onreadystatechange = useResponse;
request.send(null);
} 编辑:我没有刷新页面。我忘了提到我正在使用AJAX进行此操作。页面加载时,此函数将首先运行(显示表单数据)。但是我不希望表单发送任何数据,因为我只是加载页面而没有实际提交任何内容。 页面加载后,我单击“提交”,将调用此函数。我需要的是AJAX通过POST发送表单数据,然后重新显示它(上面的脚本概述了该功能)。 提交表单时仅调用该函数:
action=\"javascript:getData()\"
    
已邀请:
我不太了解您的要求,因为如果提交了表单,则浏览器将加载一个新的HTTP响应,该响应可能会导致生成HTML表单,但可能对此一无所知。 [编辑] 看起来\“ getData \”函数做的事情太多了,我将创建单独的函数来处理\“ get \”和\“ post \”请求,例如:
<body>
  <form name=\"form\" action=\"#\">...</form>
  <script type=\"text/javascript\">
    var getData = function() {
      // XHR GET data and update DOM...
    };
    getData();
    var sendData = function() {
      // XHR POST form encoded data from form input elements...
    };
    document.form.onsubmit = function() {
      sendData();
      getData();
      return false; // Block the actual form submit event.
    };
  </script>
</body>
jQuery serialize()函数演示了以编程方式对表单数据进行编码所需的内容。     
嗯,我希望我能正确理解你。您基本上是想(有条件)以串行方式发布到一个URL并从另一个URL(或相同URL)中获取吗? 如果是这种情况,您的代码将类似于...
var get = function(callback) {
  var req = new XMLHttpRequest();
  req.open = req.open(\'GET\', url);
  req.onreadystatechange = function() {
    if (...) {
      callback(req.responseText);
    }
  };
  req.send();
};

var exec = function(callback) {
  if (FORM_SUBMITTED) {
    var req = new XMLHttpRequest();
    req.open(\'POST\', url);
    req.onreadystatechange = function() {
      if (...) {
        get(callback);
      }
    };
    req.send();
  } else {
    get(callback);
  }
};

exec(function(data) {
  console.log(\'request(s) complete, here\'s the response: \'+data);
});
由于XHR仅在异步使用时才真正值得,因此您必须嵌套一些回调以确保一切都以串行方式进行,否则GET可能会在POST之前完成。     

要回复问题请先登录注册