我的目標是將焦點設置爲特定的inputText。在迭代器中爲inputText設置ID
由於似乎沒有辦法使用tr:inputText屬性自動執行此操作,因此我嘗試使用Javascript。
對於document.getElementById
我需要呈現的html <input>
的id。我嘗試將此ID設置爲正確的索引。但是,它的編號爲varFieldIterator:0:varField
,其中數字0來自迭代器,並且根據我的起始值selectionStart而不同。如果我從selectionStart = 10開始,那麼文本框10的第一個索引是0.如果我從15開始,然後有一個PPR來顯示前15個文本框,它們將得到以16開頭的ID。
我認爲代碼將明確什麼我儘量做到:
<tr:iterator
id="varFieldIterator"
value="#{myController.form.model.fieldList}"
var="field"
rows="15"
first="#{{myController.form.model.selectionStart}"
varStatus="status">
<tr:inputText
id="varField#{status.index}"
value="#{field.value}"
label="Text #{status.index +1}">
</tr:iterator>
<tr:inputHidden
id="FOCUS_TEXT"
value="#{myController.form.model.endFocus}"></tr:inputHidden>
<trh:script>
window.onload = function() { document.getElementById('varField' + document.getElementById('FOCUS_TEXT').value).focus(); }
</trh:script>
雖然最簡單的辦法設置獨立的迭代器的數字沒有工作的ID,你的建議,但幫助找到一個解決辦法。 – stracktracer 2012-02-24 13:24:54