我在我的应用程序中使用struts2-jquery plugin
,我正在使用其sj:a
组件提交表单。一切正常,直到我要在提交表单之前显示确认对话框。我正在使用jquery.alert plugin
来显示确认对话框。
问题是在这个jconfirm
对话框没有阻塞的情况下,会显示jconfirm
消息,但事件会继续执行。关于如何在用户点击确认对话框之前停止执行beforesubmit
事件的任何想法?
我正在使用以下代码
var result = false;
if(flag == 'true') {
jConfirm("Message", "Note", function(choice) {
if(choice) {
submitFlag = true;
$.publish('beforeSaveMilestoneSubmit');
}
});
} else {
submitFlag = true;
$.publish('beforeSaveMilestoneSubmit');
}
答案 0 :(得分:1)
我在这里找到了解决这个问题的方法。这个解决方案有点笨拙,但对我来说效果很好。解决方案是:
<sj:a formIds="form1"
id="delete_link"
targets="itemlist"
onBeforeTopics="before"
href="yourhref">Delete Item</sj:a>
<!--Duplicate the anchor, but hide it and set listenTopcs-->
<sj:a formIds="form1"
id="delete_link_hidden"
targets="itemlist"
listenTopics="confirmed"
href="yourhref"
style="display:none;">Delete Item</sj:a>
Java Script:
$.subscribe('before',function(event,data){
event.originalEvent.options.submit=false;
if(jConfirm("Message", "Note", function(choice))
$.publish('confirmed');
});