2014-01-05 3 views
0

나는 여러 로우가있는 테이블의 모든 로우에 대해 두 개의 체크 박스를 가지고있다. 여기에서 사용자가 모든 행에 대해 확인란을 선택했으며 approveCheckrejectCheck을 모두 선택하지 않았 음을 확인해야합니다. 여기에 숨겨진 두두 가지를 모두 체크하기위한 자바 스크립트 체크 박스가 하나의 로우에 체크되지 않았다.

<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> 

에 내가 부르고 자바 스크립트를 제출 JSP의 샘플 코드입니다 : 여기

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; 
    } 
} 

상관없이 나는에 선택을 선택하고 무엇이든 "모든 행동 할 필요가 " 블록. 당신은 모두 같은 시간에 확인할 수 없습니다 있는지 확인합니다

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

이 방법 :

+0

당신이 바이올린을 만들 수 있습니다 자신의 ID를 기반으로 그들의 각 하나에 액세스 할 수 있도록 그들에게 다른 ID를 제공 할 수 있습니다? –

답변

0

나는 자신의 이름을 사용하여 라디오 버튼 대신에 체크 박스, 및 그룹 각각 두 개의 라디오 버튼을 사용하는 것이 좋습니다 수 있습니다

참고 : 당신은

+0

요구 사항에 따라 확인란을 제공 할 때 라디오 버튼을 표시 할 수 없습니다. – Sayan

+1

다른 제안은 onClick의 유효성을 검사하는 것입니다. 따라서 각 확인란에서 onClick은 다른 확인란이 선택되어 있는지 확인하고 경고하는 경우 다른 확인란을 선택 취소합니다. onClick = "유효성 검사();" 함수 Validate() { \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