1

JavaScript 関数を呼び出して文字列を渡したい。私はこの方法を試しました:

function dialog(a){              
    // Dialog           
    $(a).dialog({        
        width: 600,
        buttons: {
            "Ok": function() { 
                $(this).dialog("close"); 
            }, 
            "Cancel": function(event) { 
                $(this).dialog("close");
                event.preventDefault();
            } 
        }
    });

これは JSF ボタンです。

<h:commandButton value="Delete" action="#{SessionsController.deleteSelectedIDs}" 
                    onclick="dialog('Dialog Test')">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

この方法onclick="dialog('Dialog Test')"で文字列を渡そうとすると、うまくいきません。どうすればこれを修正できますか?

幸運をお祈りしています

4

2 に答える 2

2

おそらく次のようなものが必要です。

function dialog(a) {
    // Dialog           
    $("<div />", { text: a }).dialog({
        width: 600,
        buttons: {
            "Ok": function() {
                $(this).dialog("close");
            },
            "Cancel": function(event) {
                $(this).dialog("close");
                event.preventDefault();
            }
        }
    });
}

呼び出す前に<div />、ダイアログ テキストを含む でテキストをラップします。以前は jQuery に無効なセレクターを渡していたため、何も表示されませんでした。dialog

例: http://jsfiddle.net/4extL/2/

于 2012-05-19T18:49:17.377 に答える
1

文字列を関数に渡すと、dialog()問題なく機能する可能性があります。おそらく機能していないのは、次の結果です。

$(a)

これは次のようになります。

$('Dialog Test')

<Test>これは、オブジェクトに含まれるオブジェクトの CSS セレクターを探すように jQuery に指示するため<Dialog>です。これは、意図したものとはまったく異なります。

于 2012-05-19T18:49:25.793 に答える