1

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

1 回答 1

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脚本在这里:

$.subscribe('before',function(event,data){  
event.originalEvent.options.submit=false;  
if(jConfirm("Message", "Note", function(choice))  
    $.publish('confirmed');  
});
于 2012-08-10T21:08:25.343 回答