【问题标题】:Execute javascript code straight before page submit在页面提交之前直接执行 javascript 代码
【发布时间】:2011-12-29 08:12:19
【问题描述】:

有几个与此类似的问题,但没有一个完全相同。

我想知道在页面提交(即POSTed)之前是否有一个事件可以用来执行一些JS。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这样的?

    <form onsubmit="do_something()">
    
    function do_something(){
       // Do your stuff here
    }
    

    如果你像下面的代码那样输入return,你可以通过从do_something()函数返回false来阻止表单提交。

    <form onsubmit="return do_something()">
    
    function do_something(){
       // Do your stuff here
       return true; // submit the form
    
       return false; // don't submit the form
    }
    

    【讨论】:

      【解决方案2】:

      如果您正在使用表单,则可以使用 onsubmit 事件。

      使用 jQuery 你可以做到这一点

      $('#myform').submit(function() {
        // your code here
      });
      

      【讨论】:

      • 这种方法对我永远不起作用。表单就像往常一样提交。
      • @americanknight 您需要使用 preventDefault 方法来停止按钮操作。 $('#myform').submit(function(e) { e. preventDefault(); });
      • 我用 $('form').submit(function () { //code });因为在我的情况下没有表单 ID
      【解决方案3】:

      您可以将事件处理程序绑定到submit 事件(以下代码假设您的form 上有一个id):

      document.getElementById("someForm").onsubmit = function() {
          //Do stuff
      };
      

      【讨论】:

        【解决方案4】:

        是的,您可以在表单上的 onsubmit 事件中使用。

        在纯 HTML(没有 jQuery)中,您可以使用:

        <form onSubmit="mySubmitFunction()">
           ...
        </form>
        

        更多详情:https://www.w3schools.com/jsref/event_onsubmit.asp

        【讨论】:

        • 链接已损坏。
        • @askepott,感谢您提请我注意此链接现已修复:)
        【解决方案5】:

        以下代码将从窗口级别中止提交,不会提交表单。

        window.onsubmit = function() { alert('aborting submit'); return false; };
        

        使用 IE11 测试,因此它应该适用于一些没有 jQuery 的旧版应用程序。

        【讨论】:

          猜你喜欢
          • 2014-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-20
          • 2018-05-07
          相关资源
          最近更新 更多