您好我正试图从jquery获取p:selectOneMenu的值,但我还是得到了。我使用JSF和primefaces作为我的UI组件。
<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>
在Html中
<select id="skill_input" name="skill_input">
<option value="">Select</option>
<option value="Other">Other</option>
<option value="Tailoring">Tailoring</option>
<option value="Swimming">Swimming</option>
<option value="Roaming">Roaming</option>
</select>
多数民众赞成我选择一个菜单,我的js是..
var $element = $('.someClassName');
alert($element);
在警告框中我得到[object object],但不是所选的值。
然后我尝试了这个,
var $element = $('.someClassName').val();
alert($element);
但现在我有一个空警报框。
然后我试了这个
var $element = $("select[name='skill_input']:selected").val();
alert($element);
我的提示框显示未定义
我应该怎么做才能在该警报框中获取所选值.. ??
答案 0 :(得分:6)
试试这个
var $element = $("select[name='skill_input'] option:selected").val();
alert($element);
答案 1 :(得分:1)
我还没有真正使用过Jquery但是如果你想使用一个简单的javascript解决方案,那么你可以使用:
var selectedValue = document.getElementById("MyForm:skill").value
MyForm
将是可以找到selectOneMenu组件的表单ID。而skill
当然是你选择了OneMenu id。
答案 2 :(得分:0)
您需要选择一个值为空的选项,或将第一个选项值设置为“空”
答案 3 :(得分:0)
定义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());