我尝试使用jQuery的submit()方法提交HTML表单。
我正在注册submitHandler来检查formdata。如果检查失败,用户可以在对话框中选择是继续还是取消。继续我取消注册我的Checkeventhandler并在表单上调用submit(),但没有任何反应。
这是我的编码:
<form action="test.php" id="summary_01" method="post">
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#summary_01').on('submit', function(e){
var result = check();
if (!result) {
e.preventDefault();
}
return result;
});
});
function check() {
var result = false;
// do some Checks, setting result= true, if OK
if(!result) {
$( "#dialog-message" ).dialog({
modal: true,
resize : true,
width : 'auto',
buttons: {
Ok: function() { //Sending, despite check failed
$('#summary_01').unbind('submit'); //remove checkingForm Eventhandler
$('#summary_01').submit();
$( this ).dialog( "close" );
},
Cancel : function() {
$( this ).dialog( "close" );
}
}
});
}
return result;
}
</script>
我认为问题是e.preventDefault(),但对话调用是异步的,因此我阻止提交,直到用户选择继续或取消。
也许你可以帮助我。感谢您的帮助。
答案 0 :(得分:1)
调用本机submit
函数。在您的代码中,您还有其他表单ID。应该是#form01
。
$('#form01').off('submit');
$('#form01').get(0).submit();