如何在javascript中获取selectcheckboxmenu的价值

时间:2016-07-21 03:53:04

标签: javascript primefaces

这是我的代码,

 function validateForm()   
    {
        var messages = [];

        if (document.getElementById("templateForm:create:assignTo").value=="")
        {
            messages.push("Assigned Person must be filled out.");
        }
        if (messages.length > 0) {
            alert(messages.join('\n'));
            return false;
        } else {
            return true;
        }
    } 
<p:selectCheckboxMenu widgetVar="Name" value="#{Bean.assignedPersons}" label="#{Bean.assignedPersonLabel}" id="assignTo" styleClass="form-control" style="width:300px" required="true" requiredMessage="!">
                                        <f:selectItems value="#{Bean.employeeNameList}" />  
                                        <p:ajax oncomplete="PF('Name').show()" listener="#{Bean.populateLabel2()}" update="assignTo" ></p:ajax> 
                                        <p:ajax event="toggleSelect" oncomplete="PF('Name').show()" listener="#{Bean.populateLabel2()}" update="assignTo"></p:ajax> 
                                    </p:selectCheckboxMenu>

我试图获得selectcheckboxmenu的价值,但我总是得到#under;&#39;。 如何获得这个价值, 感谢。

3 个答案:

答案 0 :(得分:0)

您应该使用selectedMenu的id

document.getElementById("assignTo").value==""

答案 1 :(得分:0)

最后我得到了答案,我的目标是用javascript检查验证。 Selectcheckboxmenu是多选选项。所以,我认为获得价值是不可能的。这就是我得到'底层'的原因。现在我尝试了selectcheckboxmenu的总检查次数。 这是我的代码,

var o = document.getElementById("templateForm:updateAMCTaskProfile:assignTo").getElementsByTagName('input');
        for ( var i in o ) {
            if ( o[i].type=='checkbox' ) {
                if ( o[i].checked ) {
                    cnt++;
                }
            }
        }
        if(cnt == 0)
        {
            messages.push("Assign person must be filled out.");
        }

答案 2 :(得分:0)

在访问js对象的primefaces中,您可以使用PF(widgetVar),在这种情况下,您可以执行以下操作:

获取选中的输入

PF('Name').inputs.filter(':checked')

获取此检查输入的值

PF('Name').inputs.filter(':checked').each(function({
                                        alert($(this).val());
                                     });

输入属性是供Primefaces内部使用的,请注意使用它的方式。