2013-06-18 3 views
0

나는 php while 루프를 사용하여 테이블의 이름 목록을 표시하는 테이블을 가지고 있으며 각 이름 옆에 확인란이 있으므로 사용자가 다음 페이지에서 나란히 표시하기 위해 2 개의 이름을 선택할 수 있습니다.jquery에서 숫자 체크 박스를 체크하는 방법은 무엇입니까?

jquery 폼 검사기를 사용하고 있으며 다음 페이지로 이동하기 전에 2 개보다 많거나 적은 이름을 선택하면 메시지를 표시하고 싶습니다. 유효성 검사는 스트레이트 문자열 비교 등의 간단한 작업에는 잘 작동하지만이 작업을 수행 할 수는 없습니다. 검사 할 수있는 확인란의 수를 얻으려는 의도 때문입니다. 양식 단지 검증 기능을 무시하고

을 쳤다 얼마나 많은 체크 박스에 관계없이 제출

<form method="post" onsubmit="return validation()" action="merge_accounts.php" 
     name="merge_form" id="merge_form" > 
    <table> 
     <?php while ($row = mysqli_fetch_array($sql)){ 
       $account_id = $row['id']; ?> 
      <tr> 
       <td><input type="checkbox" id="merge[]" name="merge[]" value="<? echo $row['id']; ?>" style="margin-left:10px" /></td> 
       <td class="results_cell" style="padding-left:0px"> 
        <a title="<? $row['name']; ?>" href="account_info.php?id=<? echo $account_id; ?>" onClick="this.document.id.submit();"><? 
        if(strlen($row['name']) > 45){ 
         echo substr($row['name'], 0, 45).'...'; 
        } else { 
         echo $row['name']; 
        }?></a> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2" class="no_hover"> 
        <input type="submit" class="advanced_buttons" 
        style="margin: 0px 5px 3px 10px; height:30px; width:60px" 
        name="merge_submit" value="Merge" /> 
       </td> 
      </tr> 
     </table> 
</form> 

JQuery와 ... 순간

<script> 

    function validation() 
    { 
     var num = document.forms["merge_form"]["merge"].length; 
      if(num != 2) 
      { 
       $.msgbox("Please select 2 items", {type:"info", 
        buttons: [ 
         {type: "submit", value: "OK"} 
        ] 
       }); 
       return false; 
      } 
    } 

</script> 

이 양식은 ...

+3

아 제발 '자바 == javascript'을! – HamZa

+0

@HamZa, comment! == 건설적인 의견 – tatty27

+0

@ tatty27 실제로 자바와 자바 스크립트가 전혀 다른 두 가지 무관 한 언어라는 사실을 집으로 몰아 넣는다면 실제로 건설적인 주석을 달았습니다. 자바가 전혀 없는데도 이것을'java' 게시물로 태그를 붙였습니다. –

답변

3

하면보십시오 :

$("#merge_form input:checked").length 
+0

': checked'는'* : checked'와 동일하다는 것을 명심하십시오. (즉, jQuery /'document.querySelectorAll()'은'# merge' 내의 모든 * 엘리먼트를 조사하여 검사 여부를 확인합니다; [docs] (http://api.jquery.com/checked-selector/)는이 경우 선택자에게 태그 이름 또는 다른 식별자를 명시 적으로 지정하는 것이 좋습니다). –

+0

@DavidThomas : 정보 주셔서 감사합니다. 나는 오늘 새로운 것을 배웠다 – mrsrinivas

+0

(나는 더 명확해야 했음에 틀림 없다 :'#merg input : checked', 그렇지 않으면'input' 내에있는'# merge '내의'checked :'요소를 찾고 있습니다. 이 함수는 아무 요소도 반환하지 않는다. 왜냐하면'input '은 정의에 의해 void/empty 요소이기 때문이다.결국 jQuery 선택기는 CSS 선택기와 동일한 규칙을 따릅니다. –

관련 문제