質問

jSFでjQuery DialogとAjax submitを使用すると問題が発生します。 ダイアログウィンドウを表示するための次のコードがあります:

                <script type="text/javascript"> 
                        jQuery(function(){ 
                                // Dialog 
                                jQuery('#dialog').dialog({ 
                                        dialogClass: 'alert', 
                                        autoOpen: false, 
                                        width: 300, 
                                        height: 150, 
                                        modal: true, 
                                        resizable: false, 
                                        overlay: { 
                                                backgroundColor: '#000', 
                                                opacity: 0.5 
                                        }, 
                                        buttons: { 
                                                "Ok":  function() { 
                                                        jQuery(this).dialog("close"); 
                                                        return true; 
                                                }, 
                                                "Cancel": function() { 
                                                        jQuery(this).dialog("close"); 
                                                        return false; 
                                                } 
                                        } 
                                }); 

                                // Dialog Link 
                                jQuery('#dialog_link').click(function(){ 
                                        jQuery('#dialog').dialog('open'); 
                                        return false; 
                                }) 
                                .hover( 
                                        function() { jQuery(this).addClass('ui-hover-state'); }, 
                                        function() { jQuery(this).removeClass('ui-hover-state'); } 
                                ); 

                        }); 
                </script> 
It works as it should - it displays box when link is clicked. 
Now, I have something like this, for deleting something: 
<a4j:commandLink 
        actionListener="#some.action" 
        reRender="something" 
        onclick="if(!jQuery('#dialog').dialog('open')){return false}" 

ok, this commandLink is rendered as follows: 
<a href="#" 
        id="some:long:id:j_id338" 
        name="formName:something:j_id338" 
        onclick="if(!jQuery('#dialog').dialog('open')){return 
false};A4J.AJAX.Submit('something:something'); 
        return false;" 
>drop</a> 

今、ダイアログボックスを表示した後、A4j.AJAX.Submit(..)は とにかくそこにあります、たとえば、全体を渡すことができます A4J.AJAX.Submit(...)to&quot; dialog&quot ;;そして、「ok」から実行します;オプション? ユーザーが[OK]をクリックした場合にのみ、送信を実行する必要があります。 助けてくれてありがとう JQ

役に立ちましたか?

解決

次を定義できます:

<a4j:jsFunction name="okClicked"
    actionListener="#{some.action}" 
    reRender="something" />

次のように、OK関数で呼び出します:

"Ok": function() { 
    jQuery(this).dialog("close");
    okClicked();
    return true; 
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top