如何使用struts2-jquery sj在beforeSubmit事件中添加确认对话框:a

时间:2012-06-07 11:35:11

标签: jquery jquery-plugins

我在我的应用程序中使用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');
    }

1 个答案:

答案 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');  
});