【发布时间】:2013-01-10 19:32:00
【问题描述】:
到目前为止,我还没有找到正确的方法。我有一个 inputText 绑定到对象中的变量。我有一个 selectOneMenu 项目下拉菜单,非常棒。 The thought was that when selected, I'd just push the selected text from the dropdown into the input box (simulating typing it).显然这是不行的。我可以很容易地在 javascript onselect 处理程序中获取所选元素的文本,但 inputText 拒绝接受它(可能选择重新显示存储的空字符串而不是接受它作为输入并将其推送到对象)。我也尝试过直接在 Java 中设置字符串,但结果完全相同(没有发生任何事情)。显然我的整个方法是有缺陷的。这样做的正确方法是什么?下面是一些不起作用的示例 xhtml 代码(涉及的 java 是简单的 getter/setter):
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<script type="text/javascript">
function dropdownSelect() {
var element=document.getElementById("form:dropdown");
var text=element.options[element.selectedIndex].value;
document.getElementById("form:part").textContent=text; // TODO doesn't work. Neither does forcing the part number to change inside the object via Java code
}
</script>
<h:body>
<h:form id="form">
<h:inputText id="part" value="#{part.partNumber}"/>
<h:selectOneMenu id="dropdown" onselect="dropdownSelect()">
<f:selectItems value="#{part.list}"/>
</h:selectOneMenu>
</h:form>
</h:body>
</html>
【问题讨论】:
标签: javascript jsf-2