使用jQuery更新对话框标题

时间:2012-05-15 18:38:51

标签: javascript jquery jsf primefaces

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

<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的专家,我从主要的forum获取了jQuery语法。可能我误解了一些事情。

2 个答案:

答案 0 :(得分:3)

请相信我id#ui-dialog-title-viewPersonsDlgId没有元素。使用井号,您可以通过id找到元素。 ui-dialog-titleclassspan dialog title,其中viewPersonsDlgId已定义且id是其oncomplete="jQuery('#viewPersonsDlgId .ui-dialog-title').text('ciao');viewPersonsDlg.show()" 。所以正确的代码是:

id

编辑:删除了不是问题原因的上一部分答案。另外一件重要的事情是,您必须指定dialog的正确form,因此如果它位于prependId="false"内并且您未在{form中使用...#formID\\:viewPersonsDlgId... 1}}属性然后使用{{1}}(你必须在带有双斜杠的jQuery中转义“:”)

答案 1 :(得分:0)

怎么样:

$('#myDialogId').dialog( "option", "title", "ciao" );