如何使用 jQuery 对话框劫持表单,然后继续提交
我有一个简单的形式:
<form id="cancel" method="post" action="/Controller/Cancel">
<input class="submitbtn" type="submit" value="Go">
...
我使用 jQuery 和 jQuery UI 对话框。我想做的是劫持表单的提交并显示一个对话框。当用户在对话框中单击“是”时,表单将继续并进行正常的页面提交。如果他们单击“否”,对话框就会取消。
我有这段代码:
$(document).ready(function () {
$("#dialog").dialog({
resizable: false,
autoOpen: false,
modal: true,
buttons: {
"Yes": function () {
// Not sure what to do here
$(this).dialog("close");
},
"No": function () {
$(this).dialog("close");
}
}
});
$('#cancel').submit(function (event) {
event.preventDefault();
$('#dialog').dialog('open');
});
});
我的问题是,如何让提交代码根据对话框的响应返回 true/false 给客户端。
任何帮助表示赞赏。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这里的问题是,当您在“Yes”按钮回调中使用
$('#cancel').submit()
时,会再次触发submit
事件,并且event.preventDefault()
阻止实际提交。一个快速解决方法是在实际提交表单之前取消绑定提交事件。 (演示:http://jsfiddle.net/WQjFj/6/)
可以找到另一种解决方案关于这个答案:使用 jquery ui 对话框确认表单提交操作
The problem here is that when you use
$('#cancel').submit()
within the "Yes" button callback, thesubmit
event is triggered again andevent.preventDefault()
stops the from from actually being submitted.A quick fix would be to unbind your submit event just before actually submitting the form. (Demo: http://jsfiddle.net/WQjFj/6/)
Another solution can be found on this answer: Using jquery ui dialog to confirm action for form submission
您可以直接从对话框提交表单。 //不确定在这里做什么,请放置
以下是您可能已经看到的指南:
http://www.jensbits.com/2009/08/10/modal-confirmation-dialog-on-form-submit-javascript-jquery-ui-and-thickbox-varieties/
You could submit the form directly from the dialog. Where you have //Not sure what to do here, put
Here's a guide you may have seen:
http://www.jensbits.com/2009/08/10/modal-confirmation-dialog-on-form-submit-javascript-jquery-ui-and-thickbox-varieties/