我正在使用Jquery,如果我点击链接或执行某些操作,我想在页面上自动更新我的表单。如果我使用.submit()它工作正常,如果我使用.submit(function(e){})表单将不会提交。我需要从表单提交中获得响应,这就是为什么我需要.submit(function(e){})来处理.submit()。感谢。
我有一张表格:
<form action="action.html" id="form1">
</form>
我有一个链接:
<a href="" data-id="1" class="myLink">Link</a>
当我点击链接时,我会执行以下操作:
$(document).on('click', '.myLink', function(e) {
// this will call a function to submit my form...
var response = saveEmailDraft($(this).data('id'));
e.preventDefault();
});
function saveEmailDraft(id){
$('#form' + id).submit(); // this works fine...
$('#form' + id).submit(function(e){
// this DOES NOT work...
alert('my form submitted!');
});
// I've also tried;
$(document).ready(function() {
$('#form' + id).submit(); // this works fine...
$('#form' + id).submit(function(e){
// this DOES NOT work...
alert('my form submitted!');
});
});
}
答案 0 :(得分:1)
您需要在提交表单之前绑定事件处理程序。
function saveEmailDraft(id){
$('#form' + id).submit(function(e){
alert('my form submitted!');
});
$('#form' + id).submit();
}
但是,这不会让你从表单提交中获得回复。在将表单数据发送到服务器之前执行事件处理程序。提交表单后,页面将重新加载,所有当前脚本都将停止运行。
如果您想获得回复,则需要使用$.ajax
(或$.get
或$.post
之类的快捷方式)代替.submit()
。