我需要将文本输入中的值动态添加到列表框字段。基本上,我正在制作一个自定义的多行文本组件。以下适用于标准<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>
在此先感谢您的帮助。