使用JavaScript / jQuery提交表单后调用函数

时间:2012-11-15 08:30:01

标签: javascript jquery forms

我希望在提交表单后调用一个函数,我看到我们可以使用.submit(handler function())在jQuery中执行此操作,但方法描述说,处理程序方法将在表单提交之前执行。我怎么能真正达到这个目的?我应该在提交表单后使用setTimeout还是有其他解决方案?

3 个答案:

答案 0 :(得分:2)

$("#myFormId").on('submit', function(e) {
    e.preventDefault();
    $.ajax({
        type: $(this).prop('method'),
        url : $(this).prop('action'),
        data: $(this).serialize()
    }).done(function() {
        doYourStuff();
    });
});

答案 1 :(得分:0)

你可以使用插件http://www.malsup.com/jquery/form/#ajaxSubmit并在回调方法上做你需要的事情成功

$(document).ready(function() { 
var options = { 
    target:        '#output2',   // target element(s) to be updated with server response 

    success:       function() {
                   // callback code here
                    }

}; 

// bind to the form's submit event 
$('#myForm2').submit(function() { 
    $(this).ajaxSubmit(options); 

    return false; 
}); 
}); 

答案 2 :(得分:0)

流速:

  1. window.sessionStorage ['submit']最初是一个空字符串。
  2. 在文本框中输入内容后,单击“提交”按钮,文本框中的值将保存到window.sessionStorage ['submit']。 这意味着window.sessionStorage ['submit']不再是空的。它包含一个价值。
  3. 提交表单后页面会刷新。
  4. onload函数将检查window.sessionStorage ['submit']中是否有任何内容。如果它不为空则表示该表单是由用户提交的。 然后它将window.sessionStorage ['submit']重置为空字符串。
  5. 它使用所有主流浏览器都支持的会话存储。

    <html>
    <body onload="checkSubmitStatus()">
    <form name="text" action="">
    <input type="text" id="txtId">
    <input type="submit" value="submit" onclick="storeInSession()"/>
    </form>
    
    <script type="text/javascript">
    function storeInSession(){
        window.sessionStorage['submit'] = document.getElementById('txtId').value;
    }
    
    function checkSubmitStatus(){
        if(window.sessionStorage['submit']){
            alert('The form was submitted by '+ window.sessionStorage['submit']);
            window.sessionStorage['submit'] = '';
        }
    }
    </script>
    </body>