在onchange回调中读取<p:selectOneMenu />的客户端值

Dis*_*tum 1 javascript java primefaces jsf-2

鉴于这种:

<p:selectOneMenu value="#{myBean.selection}" onchange="handleChange();">
    <f:selectItem itemLabel="foo" itemValue="0"/>
    <f:selectItem itemLabel="bar" itemValue="1"/>
</p:selectOneMenu>

<script type="text/javascript">
    function handleChange() {
        // Do something here...
    }
</script>
Run Code Online (Sandbox Code Playgroud)

如何在JavaScript中检测所选项目,以便我可以在handleChange()函数中采取适当的操作(例如显示/隐藏div)?似乎没有任何相关文档.

Bal*_*usC 8

所选值位于可用的HTML DOM事件属性中this.value.

<p:selectOneMenu value="#{myBean.selection}" onchange="handleChange(this.value)">
    <f:selectItem itemLabel="foo" itemValue="0"/>
    <f:selectItem itemLabel="bar" itemValue="1"/>
</p:selectOneMenu>

<script type="text/javascript">
    function handleChange(selection) {
        // Do something here with selection...
    }
</script>
Run Code Online (Sandbox Code Playgroud)

似乎没有任何相关文档.

这不是特定于JSF,而是一般的HTML/JS,因此应该通过查看客户端中的JSF生成的HTML输出并理解一些基本的HTML/JS来找到答案.