gpt4 book ai didi

java - JSF2.0 - 在对话框的 onShow 事件期间无法通过 Jquery 检索对话框内的 InputTextArea

转载 作者:行者123 更新时间:2023-11-29 06:04:42 24 4
gpt4 key购买 nike

我的 .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>

单击按钮时显示对话框。 fillTextArea javascript 函数在文档头部的脚本标记内定义。

function fillTextArea() {
console.log(jQuery("textarea[id='someInputTextArea']")); // logs empty array []
console.log($("[id='someInputTextArea']")); // logs empty array []
jQuery("textarea[id='someInputTextArea']").val('xxx'); // does nothing
}

有什么问题?为什么我无法检索输入文本区域?

我没有使用 DialogonShow 事件,而是尝试:

exampleDialog.show();
fillTextArea();

以防万一。但这也不起作用。我正在尝试设置 inputTextArea 的内容。

感谢任何帮助。谢谢。

最佳答案

jQuery 在 JSF 生成的 HTML DOM 树上工作,而不是在 JSF 源代码上工作。 JSF 组件不一定生成与您在组件 ID 中指定的相同的客户端 ID(HTML 元素 ID)。它们可能以父​​ ID 为前缀 NamingContainer 成分。 <h:form><p:tabView>是这样的组件。

在网络浏览器中打开页面,右键单击并查看源代码 并找到生成的 HTML 代码 <p:inputTextarea> .它看起来像这样:

<textarea id="formId:tabViewId:textareaId">

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

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

另见:

关于java - JSF2.0 - 在对话框的 onShow 事件期间无法通过 Jquery 检索对话框内的 InputTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com