Javascript 如何获得<;p:选择一个功能表>;在jquery中?
嗨,我正试图从jquery中获取p:selectOneMenu的值,但我还没有得到。我使用JSF和primefaces作为我的UI组件Javascript 如何获得<;p:选择一个功能表>;在jquery中?,javascript,jquery,jsf,jsf-2,primefaces,Javascript,Jquery,Jsf,Jsf 2,Primefaces,嗨,我正试图从jquery中获取p:selectOneMenu的值,但我还没有得到。我使用JSF和primefaces作为我的UI组件 <p:selectOneMenu style="width:150px" id="skill" value="#{loginBean.skill}" required="true" immediate="true" requiredMessage="Select your skill"
<p:selectOneMenu style="width:150px" id="skill"
value="#{loginBean.skill}" required="true" immediate="true"
requiredMessage="Select your skill" label="skill" styleClass="someClassName">
<f:selectItem itemLabel="Select" itemValue=""></f:selectItem>
<f:selectItem itemLabel="Other" itemValue="Other"></f:selectItem>
<f:selectItems value="#{loginBean.skillList}" var="item"
itemLabel="#{item}" itemValue="#{item}"></f:selectItems>
</p:selectOneMenu>
在警报框中,我得到的是[object],但不是所选的值
然后我试了一下
var $element = $('.someClassName').val();
alert($element);
但现在我得到了一个空警报框
然后我试了这个
var $element = $("select[name='skill_input']:selected").val();
alert($element);
我的警报框显示未定义
我还应该做些什么来获取该警报框中的选定值…?试试这个
var $element = $("select[name='skill_input'] option:selected").val();
alert($element);
我没有真正使用过Jquery,但如果您想使用简单的javascript解决方案,那么欢迎您使用:
var selectedValue = document.getElementById("MyForm:skill").value
MyForm
是可以在其中找到selectOneMenu组件的表单id。当然,您需要选择一个菜单id。您需要选择一个值不为空的选项,或者将第一个选项的值设置为“空”之类的值
- 默认情况下,第一个选项被选中,并且在代码中它有一个空值-因此您不会显示任何内容
widgetVar
并使用PrimeFace框架获取价值
<p:selectOneMenu widgetVar="foo" style="width:150px" id="skill"
value="#{loginBean.skill}" required="true" immediate="true"
requiredMessage="Select your skill" label="skill" styleClass="someClassName">
<f:selectItem itemLabel="Select" itemValue=""></f:selectItem>
<f:selectItem itemLabel="Other" itemValue="Other"></f:selectItem>
<f:selectItems value="#{loginBean.skillList}" var="item"
itemLabel="#{item}" itemValue="#{item}">
</f:selectItems>
</p:selectOneMenu>
// Call it in your JS
console.log(PF('foo').getSelectedValue());
//在JS中调用它
log(PF('foo').getSelectedValue());
否,我已选择包含值的选项。但是迪恩得到了。。现在我用dereli给出的上述解得到了。。无论如何,也感谢您的回复。好的,对不起,我没有看到在父元素后面没有空格,但是这个$('skill_input').val()应该可以工作;你从来没有为你的选择定义过一个类,也许这是个问题?[$('.someClassName').val();]我已经尝试过了,但无法得到解决方案,现在我通过dereli给出的解决方案得到了解决方案,无论如何,非常感谢。为了避免混淆,问题中的“Html”部分指的是翻译后的primefaces部分。因此,它不是实际代码的一部分,但它有助于找到答案。因此,在@dereli的回答中,以下名称='skill\u input'用于指代。如果有,解决方案将是:var$element=$(“选择[name='anylabel_input']选项:selected”).val();看看这个:
var selectedValue = document.getElementById("MyForm:skill").value
<p:selectOneMenu widgetVar="foo" style="width:150px" id="skill"
value="#{loginBean.skill}" required="true" immediate="true"
requiredMessage="Select your skill" label="skill" styleClass="someClassName">
<f:selectItem itemLabel="Select" itemValue=""></f:selectItem>
<f:selectItem itemLabel="Other" itemValue="Other"></f:selectItem>
<f:selectItems value="#{loginBean.skillList}" var="item"
itemLabel="#{item}" itemValue="#{item}">
</f:selectItems>
</p:selectOneMenu>
// Call it in your JS
console.log(PF('foo').getSelectedValue());