2016-07-21 74 views
0

這裏我的代碼selectcheckboxmenu的價值,如何獲得在javascript

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的價值,但我總是得到「underfined」。 如何獲得此值, 謝謝。

回答

0

的ID最後我得到了答案,我的目標是用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."); 
     } 
0

您應該使用selectedMenu

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

不能這樣使用,因爲這個selectedMenu是在一些表單ID下。 – Alice

0

在primefaces訪問JS對象,你可以使用PF(widgetVar),在這種情況下,你可以做如下:

要獲得檢查輸入

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

要得到這個值檢查輸入

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

ŧ他輸入的屬性是爲Primefaces內部使用的,注意如何使用它。