これまでのところ、正しい方法でヒットすることはできませんでした。オブジェクトの変数にバインドされた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>