如何在jquery中获取<p:selectonemenu>的值?</p:selectonemenu>

时间:2011-11-11 11:37:06

标签: 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" 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);

我的提示框显示未定义

我应该怎么做才能在该警报框中获取所选值.. ??

4 个答案:

答案 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());