Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery更新对话框标题_Javascript_Jquery_Jsf_Primefaces - Fatal编程技术网

Javascript 使用jQuery更新对话框标题

Javascript 使用jQuery更新对话框标题,javascript,jquery,jsf,primefaces,Javascript,Jquery,Jsf,Primefaces,我无法使用jQuery更新p:对话框的标题: <p:commandButton value="#{msgs.ViewPersons}" oncomplete=" jQuery('#ui-dialog-title-viewPersonsDlgId').text('ciao'); viewPersonsDlg.show()"> ... <p:dialog modal="true" id="viewPersonsDlgId" widgetVar="view

我无法使用jQuery更新p:对话框的标题:

<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中没有看到错误。对话框的标题保持为空,或者显示我在对话框的标题属性中输入的内容(如果存在)

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

那么:

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

请相信我,没有具有此id的元素:ui对话框标题viewPersonsDlgId。使用哈希符号,您可以按id查找元素。ui dialog title是对话框中的一个span类,其中定义了标题,viewPersonsDlgId是其id。因此正确的代码是:

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

编辑:删除答案的前一部分,该部分不是问题的原因。同样重要的是,您必须指定对话框的正确id,因此,如果它被放置在表单中,并且在表单属性中不使用prependId=false,那么请使用…formID\\:viewPersonsDlgId。。。您必须转义:在带有双斜杠的jQuery中,这会抛出一个Javascript错误:$viewPersonsDlgId.dialog不是函数。可能是因为PrimeFaces自动嵌入了一个特定版本的jQuery?你确定你已经加载了jQuery ui?对不起,我忘了提到我也尝试过了。相同的行为:没有错误,没有标题的更新。使用对话框外部的表单,没有jQuery,一切都可以正常工作。使用update=:myFormId就足够了。但我想将表单移动到对话框中,因为我已经了解到,有时另一种方式会出现问题。请尝试此代码,我已经在简单的代码段上对其进行了测试,并且工作正常。首先确保选择器返回正确的元素。从firebug控制台提示符调用jQuery命令jQuery'ui-dialog-title-viewPersonsDlgId'。text并检查返回的内容。如果它没有返回任何内容,则说明选择器错误。如果页面上只有一个对话框,则可以使用类选择器选择其标题:jQuery'.ui dialog title'.text;我已经用Fallup的解决方案解决了。无论如何谢谢你