6

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

4

3 回答 3

5
$("#myFormId").on('submit', function(e) {
    e.preventDefault();
    $.ajax({
        type: $(this).prop('method'),
        url : $(this).prop('action'),
        data: $(this).serialize()
    }).done(function() {
        doYourStuff();
    });
});
于 2012-11-15T08:34:57.123 回答
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; 
}); 
}); 
于 2012-11-15T08:34:48.607 回答
0

流动:

  1. window.sessionStorage['submit'] 最初是一个空字符串。
  2. 在文本框中键入内容并单击提交按钮后,文本框中的值将保存到 window.sessionStorage['submit']。这意味着 window.sessionStorage['submit'] 不再为空。它包含一个值。
  3. 提交表单后页面刷新。
  4. onload 函数将检查 window.sessionStorage['submit'] 中是否有任何内容。如果它不为空,则表示该表单是由用户提交的。然后它再次将 window.sessionStorage['submit'] 重置为空字符串。

它使用所有主要浏览器都支持的会话存储。

<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>

于 2012-11-15T08:54:43.333 回答