这是我的代码,
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;。 如何获得这个价值, 感谢。
答案 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内部使用的,请注意使用它的方式。