У меня есть тег apex, который генерирует поле ввода текста.
<apex:page id="my_page">
<apex:inputText id="foo" id="c_txt"></apex:inputText>
</apex:page>
Когда кто-то щелкает это поле, я хочу выполнить JavaScript.
Но когда я проверяю источник HTML, эта вершинатег, который становится входным тегом, имеет (я думаю) динамически сгенерированную часть.
<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()" />
datepickerjs
var elem = getElementById('c_txt');
alert(elem);
Предупреждение показывает «ноль», поэтому что-то должно быть не так.
Даже это предупреждение возвращает ноль ...
var targetDateField = document.getElementById('{!$Component.my_page:c_txt}');
alert(targetDateField);