Javascript 同时提交表单和调用函数

Javascript 同时提交表单和调用函数,javascript,html,Javascript,Html,提交表单时是否可以同时执行两个操作 以下是我的例子: <input type="checkbox" name="setM" id="m" value="1" onClick="this.form.submit();setM();" /> 是否有另一种方法可以提交表单并同时处理功能? 当我提交表单时,我会进行一些处理,然后根据结果处理setM。因此,我需要提交的文件将是第一个。 编辑 <script type="text/javascript"> function

提交表单时是否可以同时执行两个操作

以下是我的例子:

<input type="checkbox" name="setM"  id="m"  value="1" onClick="this.form.submit();setM();" />

是否有另一种方法可以提交表单并同时处理功能? 当我提交表单时,我会进行一些处理,然后根据结果处理setM。因此,我需要提交的文件将是第一个。

编辑

<script type="text/javascript">
function DoAllThese() {
    One();
    Two();
    Three();
    Four();}

函数doAllThis(){
一个();
二();
三个();
四();}

我可以调用此函数,然后一个将执行setM函数,两个将提交特定表单

当您提交表单时,浏览器会离开页面,因此您描述的“流程”可能是服务器端流程

您不能让JavaScript从浏览器刚刚离开的页面上的事件处理程序运行到下一页

您需要:

  • 使用XMLHttpRequest(Ajax)提交数据
  • 让下一页包含要运行的JS

    • 当您提交表单时,浏览器会离开页面,因此您描述的“流程”可能是服务器端流程

      您不能让JavaScript从浏览器刚刚离开的页面上的事件处理程序运行到下一页

      您需要:

      • 使用XMLHttpRequest(Ajax)提交数据
      • 让下一页包含要运行的JS

        • HTML

          <form name="myform" action="test.html" onsubmit="verify()">
              <!-- FIELDS -->
          </form>
          

          HTML

          <form name="myform" action="test.html" onsubmit="verify()">
              <!-- FIELDS -->
          </form>
          

          除非使用AJAX,否则运行的任何post提交行为都不会对页面产生任何影响,因为页面将被表单post的结果替换。如果在提交表单后使用AJAX,即使在最好的情况下,在提交后操作的效果和加载新页面之前卸载页面之间也会存在一些竞争条件

          因为从你的问题中不可能确定你想做什么,所以我将给出一些一般性的指导方针

        • 在提交表单之前,运行任何可能影响表单提交的操作,然后仅在这些操作完成后提交表单。如果表单提交是以成功完成函数为条件的,那么请确保在函数失败时阻止默认操作(表单提交)

        • 如果您想根据表单提交的结果影响当前页面,请使用AJAX并完全通过JavaScript处理表单提交,其函数取决于AJAX成功回调中运行的表单post(如果您手动处理AJAX,则取决于200 OK响应)

        • 不要在标记中应用您的行为,而是使用JavaScript将处理程序附加到元素。这将帮助您理解JavaScript代码,因为这些行为将在代码中本地化,而不是分散在整个文档中


        • 除非使用AJAX,否则运行的任何post提交行为都不会对页面产生任何影响,因为页面将被表单post的结果替换。如果在提交表单后使用AJAX,即使在最好的情况下,在提交后操作的效果和加载新页面之前卸载页面之间也会存在一些竞争条件

          因为从你的问题中不可能确定你想做什么,所以我将给出一些一般性的指导方针

        • 在提交表单之前,运行任何可能影响表单提交的操作,然后仅在这些操作完成后提交表单。如果表单提交是以成功完成函数为条件的,那么请确保在函数失败时阻止默认操作(表单提交)

        • 如果您想根据表单提交的结果影响当前页面,请使用AJAX并完全通过JavaScript处理表单提交,其函数取决于AJAX成功回调中运行的表单post(如果您手动处理AJAX,则取决于200 OK响应)

        • 不要在标记中应用您的行为,而是使用JavaScript将处理程序附加到元素。这将帮助您理解JavaScript代码,因为这些行为将在代码中本地化,而不是分散在整个文档中


        • 正如其他两个人以一种非常漂亮的方式解释的那样,我还说,使用ajax提交表单时,您想要做的事情是可能的

          <form>
          
          
          <button onclick="ajaxsubmit()">Submit</button>
          </form>
          

          正如其他两个人以一种非常漂亮的方式解释的那样,我还说,使用ajax提交表单时,您想要做的事情是可能的

          <form>
          
          
          <button onclick="ajaxsubmit()">Submit</button>
          </form>
          

          您可以处理
          onsubmit
          事件。但是,必须澄清:表单提交和函数调用应该是同步的还是异步的?我不认为后一种情况会发生,因为表单提交会导致导航离开页面。提交返回到同一页面后,表单设置为?post的
          操作是什么。它使进程返回到同一页。然后我想处理setM函数如果
          Two()
          提交,那么
          twree()
          Four()
          将无关紧要。如果post需要很长时间,它们可能会执行,但不会对post产生任何影响。您可以处理
          onsubmit
          事件。但是,必须澄清:表单提交和函数调用应该是同步的还是异步的?我不认为后一种情况会发生,因为表单提交会导致导航离开页面。提交返回到同一页面后,表单设置为?post的
          操作是什么。它使进程返回到同一页。然后我想处理setM函数如果
          Two()
          提交,那么
          twree()
          Four()
          将无关紧要。如果帖子需要很长时间,他们可能会执行,但他们不会对帖子产生任何影响。这就是我写的。问题是如果