gpt4 book ai didi

javascript - 如何引用 visualforce 中指定的 html 元素 id 并传递给 javascript 函数?

转载 作者:数据小太阳 更新时间:2023-10-29 03:50:14 25 4
gpt4 key购买 nike

我有生成输入文本字段的 apex 标签。

<apex:page id="my_page">
<apex:inputText id="foo" id="c_txt"></apex:inputText>
</apex:page>

当有人点击这个字段时,我要执行javascript。

但是当我检查 HTML 源代码时,这个成为输入标签的 apex 标签有(我认为)动态生成的部分。

   <input type="text" size="50" value="Tue Nov 16 00:00:00 GMT 2010" 
name="j_id0:j_id3:j_id4:c_txt" id="j_id0:j_id3:j_id4:c_txt">

如您所见,id 有垃圾部分 :(

id="j_id0:j_id3:j_id4:c_txt"

在我的 Javascript 中,我正在尝试 getElementById('c_txt') 但这当然不起作用。这个怎么处理???

更新

似乎我可以做到这一点,但行不通......

<apex:includeScript value="{!URLFOR($Resource.datepickerjs)}"></apex:includeScript>

<apex:inputText id="foo" id="c_txt" onclick="javascript:displayDatePicker()" />

日期选择器

var elem = getElementById('c_txt');
alert(elem);

警报显示“null”,所以一定是出了什么问题。

即使此警报也返回 null...

var targetDateField = document.getElementById('{!$Component.my_page:c_txt}');
alert(targetDateField);

最佳答案

您可以在 javascript 中使用 $Component 符号,您可以像这样使用它:

var e = document.getElementById("{!$Component.ComponentId}");

但要注意的一件事是,如果您的元素包含在具有 ID 的多个级别的 Visualforce 标签中:

<apex:pageBlock id="theBlock">
<apex:pageBlockSection id="theBlockSection">
<apex:commandLink action="{!someAction}" value="LINK!" id="theLink"/>

// snip

// in javascript you would reference this component using:
document.getElementById("{!$Component.theBlock.theSection.theLink}");

关于javascript - 如何引用 visualforce 中指定的 html 元素 id 并传递给 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190072/

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