Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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
Java JSF2.0-在对话框';s onShow活动_Java_Jquery_Jsf_Jakarta Ee_Primefaces - Fatal编程技术网

Java JSF2.0-在对话框';s onShow活动

Java JSF2.0-在对话框';s onShow活动,java,jquery,jsf,jakarta-ee,primefaces,Java,Jquery,Jsf,Jakarta Ee,Primefaces,我的.xhtml页面中有以下对话框 <p:dialog widgetVar="exampleDialog" onShow="fillTextArea()" > <p:tabView id="tabView"> <p:tab id="exampleTab" title="Example"> <p:inputTextarea id="someInputTextArea" autoResize="false"

我的.xhtml页面中有以下对话框

<p:dialog widgetVar="exampleDialog" onShow="fillTextArea()" >
    <p:tabView id="tabView">
        <p:tab id="exampleTab" title="Example">
            <p:inputTextarea id="someInputTextArea" autoResize="false"
                value="" />
        </p:tab>
    </p:tabView>
</p:dialog>
有什么问题吗?为什么我不能检索输入文本区域

我没有使用
对话框的
onShow
事件,而是尝试:

exampleDialog.show();
fillTextArea();
以防万一。但这也没用。我正在尝试设置
inputExtArea
的内容


谢谢你的帮助。谢谢。

jQuery在JSF生成的HTMLDOM树上工作,而不是在JSF源代码上工作。JSF组件不一定生成与您在组件ID中指定的相同的客户端ID(HTML元素ID)。它们可能在父组件ID的前面。
就是这样的组件

在webbrowser中打开页面,右键单击并查看源代码,找到生成的
的HTML代码。它看起来像这样:


您需要在jQuery选择器中准确地指定该ID

$("[id='formId:tabViewId:textareaId']");
另见:

在web浏览器中查看HTML源代码时,textarea的id属性设置为什么?它是
选项卡:headCodeTextArea\u input
。但这并不意味着我必须用这么难看的语法来访问它,是吗?当我用那个id访问它时,它就可以工作了。但是没有其他方法来解决这个问题吗?顺便说一句,谢谢你,巴卢斯克,这很有效。一个简单的问题,如果我有
widgetVar=“xxx”
,我可以将其称为
xxx.val()
?PF小部件对象不是直接的jQuery对象。但是,它们有一个
.jq
属性,返回包装好的jQuery对象。所以
xxx.jq.val()
应该可以。另一种方法是根据通过
xxx.jqId
$(xxx.jqId.val()
获得的ID重新创建jQuery对象。这样,将在jQuery上下文而不是PF小部件上下文中重新创建元素。我曾经体验过,对于某些jQuery函数,
xxx.jq.foo()
失败,因为有关家长/孩子的信息不是最新的。
$("[id='formId:tabViewId:textareaId']");