入力テキストフィールドを生成する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()" />
datepickerjs
var elem = getElementById('c_txt');
alert(elem);
アラートは「null」を示しているため、何かが間違っている必要があります。
このアラートでさえnullを返します...
var targetDateField = document.getElementById('{!$Component.my_page:c_txt}');
alert(targetDateField);