2014-01-05 36 views
0

我有兩個複選框,每行有多行的表。在這裏,我需要驗證 用戶已經選擇了所有行的複選框,並且還沒有選擇approveCheckrejectCheck。兩個隱藏下面是在JSP示例代碼使用Javascript來檢查兩個複選框沒有檢查一行

<display:table> 
<display:column title="Approve" >                
<center> 
<input type='hidden' value='' name='approveCheck'> 
<input type="checkbox" name="approveCheck" value="${approve.num}" /> 
</center>                       
</display:column> 
<display:column title="Reject" >                 
<center> 
<input type='hidden' value='' name='rejectCheck'> 
<input type="checkbox" name="rejectCheck" value="${approve.num}" /> 
</center>                       
</display:column> 
</display table> 

在提交我打電話的JavaScript是:

function formCheck2(){ 

    var alertMsg = ''; 
    var checkedList1 = window.document.getElementsByName('approveCheck'); 
    var checkedList2 = window.document.getElementsByName('rejectCheck'); 
    var validationFlag = true; 
    if(checkedList1 == '')checkedList1=0; 
if(checkedList2 == '')checkedList2=0; 

    mainloop: 
    for(var i = 0; i < checkedList1.length; i++){ 
     for(var i = 0; i < checkedList2.length; i++){ 
      if(checkedList1 !='' && checkedList2 !=''){ 
      if ((checkedList1[i].checked == true || checkedList1[i].checked == "true") && (checkedList2[i].checked == true || checkedList2[i].checked == "true")){     
       validationFlag = false; 
       alertMsg = "Cannot check both"; 
       alert('both checked'); 
       break mainloop; 
       }    
      else if ((checkedList1[i].checked == false || checkedList1[i].checked == "false") && (checkedList2[i].checked == false || checkedList2[i].checked == "false")){   
       validationFlag = false; 
       alertMsg = "need to act on all"; 
       alert('none checked'); 
       break mainloop; 
       }  
      else{   
       validationFlag = true; 

      } 
     } 
     } 
    }     
    if(validationFlag){    
      window.document.forms["Rep"].btnSubmit.disabled = true;  
      window.document.forms["Rep"].action = '${urlSubmit}';  
      window.document.forms["Rep"].submit();    
    } 
    else{ 
     alert(alertMsg); 
     return false; 
    } 
} 

這裏不管不管我是誰選擇我選擇進入「需要採取行動的所有「塊。

+0

你可以創建一個小提琴他們每個人? –

回答

0

我可以建議使用單選按鈕而不是複選框,每個組兩個單選按鈕,使用他們的名字:

<input type="radio" name="Check1" value="${vdapprove.ddr_num}" onClick="toggle(this);"/> 
<input type="radio" name="Check1" value="${vdapprove.ddr_num}" onClick="toggle(this);" /> 

這種方式,你一定會既不能在同一時間進行檢查

注: 你可以給他們不同的ID,以能夠訪問基於其ID

+0

不能給出單選按鈕,因爲要求給複選框 – Sayan

+1

好的,另一個建議是驗證onClick,因此在每個複選框中,onClick將檢查是否選中了其他複選框,如果是,則取消選中其他複選框。 onClick =「驗證();」 ' 函數驗證(){ \t var checkedList1 = window.document.getElementsByName('approveCheck'); var checkedList2 = window.document.getElementsByName('rejectCheck'); \t if(checkedList1 [i] .checked == true || checkedList1 [i] .checked == true) \t \t //做些什麼。 }' –

+1

爲我工作。謝謝。 – Sayan

相關問題