到目前为止,我还没有找到正确的方法来做到这一点。我有一个 inputText 绑定到对象中的变量。我有一个 selectOneMenu 项目下拉菜单,非常棒。思想是在选择时,我只需将所选文本从下拉列表推入输入框(模拟键入它)。显然这是不行的。我可以很容易地在 javascript onselect 处理程序中获取所选元素的文本,但 inputText 拒绝接受它(可能选择重新显示存储的空字符串而不是接受它作为输入并将其推送到对象)。我也尝试过直接在 Java 中设置字符串,但结果完全相同(没有发生任何事情)。显然我的整个方法是有缺陷的。这样做的正确方法是什么?一些示例 xhtml 代码
<?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>