2

我无法p:dialog使用 jQuery 更新标题:

<p:commandButton value="#{msgs.ViewPersons}" oncomplete="
    jQuery('#ui-dialog-title-viewPersonsDlgId').text('ciao');
    viewPersonsDlg.show()"> 
...
<p:dialog modal="true" id="viewPersonsDlgId" 
    widgetVar="viewPersonsDlg" dynamic="true">

奇怪的是第二个 Javascript 语句:viewPersonsDlg.show()成功执行,我在 Firebug 中看不到错误。对话框的标题保持为空,或者显示我在对话框header属性中放入的内容(如果存在)。

我不是 jQuery 专家,我从 primefaces论坛中获取了 jQuery 语法。可能我误解了什么。

4

2 回答 2

3

相信我,这没有任何元素id#ui-dialog-title-viewPersonsDlgId。使用井号,您可以通过 找到元素idui-dialog-titleis a classof spanin dialogwheretitle被定义并且viewPersonsDlgId是它的id. 所以正确的代码是:

oncomplete="jQuery('#viewPersonsDlgId .ui-dialog-title').text('ciao');viewPersonsDlg.show()"

编辑:删除了答案的前一部分,这不是问题的原因。还有一件重要的事情是你必须指定正确iddialog,所以如果它被放置在 a 中form并且你不在prependId="false"属性中form使用然后使用...#formID\\:viewPersonsDlgId...(你必须在 jQuery 中用双斜杠转义“:”)

于 2012-05-15T18:44:09.713 回答
0

怎么样:

$('#myDialogId').dialog( "option", "title", "ciao" );
于 2012-05-15T18:42:46.827 回答