我的目标是将焦点设置为特定的 inputText。
由于似乎无法使用 tr:inputText 属性自动执行此操作,因此我尝试使用 Javascript。
因为document.getElementById
我需要渲染的 html 的 id <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>