我正在使用 JSF 创建一个界面,如果第二个尚未设置,我希望一个文本字段的值提供一秒钟的默认值。关键代码如下所示:
<h:outputScript>
function suggestValue2() {
var value2 = document.getElementById('value2').value;
if (value2 == "") {
document.getElementById('value2').value = document.getElementById('value1').value;
}
}
</h:outputScript>
<h:inputText
id="value1"
onblur="suggestValue2();" />
<h:inputText
id="value2" />
问题是这实际上不起作用。这两个输入元素的实际 ID 以一些 JSF 生成的值作为前缀,这会阻止getElementById
调用。对我来说,完成我在这里想要完成的事情的最佳方式是什么?
编辑: 我应该注意这将出现在一个复合组件中,它可能最终在一个页面上出现多次。JSF 动态设置实际 ID 表示期望的行为。