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 />包含对话框文本的 a 中。以前您向 jQuery 传递了一个无效的选择器,这就是为什么没有弹出任何内容的原因。dialog

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

于 2012-05-19T18:49:17.377 回答
1

将字符串传递给dialog()函数可能工作得很好。结果可能不起作用:

$(a)

变成:

$('Dialog Test')

因为这告诉 jQuery 查找<Test>对象中包含的<Dialog>对象的 CSS 选择器,这根本不是您的意思。

于 2012-05-19T18:49:25.793 回答