Frage

Ich habe ein Problem mit der Verwendung von jQuery Dialog und Ajax in JSF einreichen. Ich habe den folgenden Code Dialogfenster zur Anzeige:

                <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> 

Jetzt, nachdem das Dialogfeld angezeigt wird, das A4j.AJAX.Submit (..) ist trotzdem ausgeführt wird, ist es, dass ich zum Beispiel kann die ganze passieren A4J.AJAX.Submit (...) auf "Dialog" und führen Sie es aus "ok" Option? Ich muss einfach auszuführen einreichen, wenn und nur wenn der Benutzer auf OK klickt. Danke für die Hilfe JQ

War es hilfreich?

Lösung

können Sie definieren:

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

Und es in der OK-Funktion aufrufen, wie:

"Ok": function() { 
    jQuery(this).dialog("close");
    okClicked();
    return true; 
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top