テキスト入力からリストボックス フィールドに動的に値を追加する必要があります。基本的に、カスタムの複数行テキスト コンポーネントを作成しています。以下は標準の で動作します<h:selectOneListbox>
が、同等の PrimeFaces を使用すると<p:selectOneListbox>
、何も起こらないようです。アプリケーションですべての PrimeFaces 入力を使用しており、外観の一貫性を維持したいと考えています。
<!--This works:-->
<h:form id="mainForm">
<p:inputText id="txtInput" /><p:commandButton value="Add" id="addTxt"
onclick="addText()"/>
<h:selectOneListbox id="selectTxt"/>
<script type="text/javascript">
function addText(){
var txtInput = $('#mainForm\\:txtInput').val();
var opts = $('#mainForm\\:selectTxt').prop('options');
opts[opts.length] = new Option(txtInput,txtInput,true,true);
}
</script>
</h:form>
<!--This doesn't work:-->
<h:form id="mainForm">
<p:inputText id="txtInput" /><p:commandButton value="Add" id="addTxt"
onclick="addText()"/>
<p:selectOneListbox id="selectTxt"/>
<script type="text/javascript">
function addText(){
var txtInput = $('#mainForm\\:txtInput').val();
var opts = $('#mainForm\\:selectTxt_input').prop('options');
opts[opts.length] = new Option(txtInput,txtInput,true,true);
}
</script>
</h:form>
助けてくれてありがとう。