2011-03-15 11 views
0

jQuery 유효성 검사 플러그인을 사용하여 하나 이상의 확인란이 하나의 확인란에 선택되어 있어야합니다.jQuery 플러그인 유효성 검사 확인란 그룹 규칙

<input type="checkbox" name="test[name1]" id="testid1" class="required"> 
<input type="checkbox" name="test[name2]" id="testid2" class="required"> 

그리고 JS : 다음은 설정의 예 내가 입력 이름이 있다는 사실에 문제를 좁힐 수있었습니다

$("#myform").validate({ 
    groups: { 
     checkboxes: "test[name1] test[name2]" 
    } 
} 

은 "[]"그 안에있는 나는 문자열의 파싱을 망설이고 있다고 가정하고있다. 그러나 사용하고있는 플랫폼에서는 대괄호를 사용해야합니다. 이것은 일반적인 문제가 될 수있는 것처럼 보입니다. 누군가 다른 사람이 찾아와 나를 도울 수 있습니다.

checkboxes: "testname1 testname2" 

일을하지만, 그것을 사용할 수 없습니다 참고로

, 나는 시도했습니다.

checkboxes: "'test[name1]' 'test[name2]'" 

이 작동하지 않습니다.

답변

-2

귀하의 플랫폼이 PHP 기반이라고 추측하겠습니다. 제출 된 양식 데이터로 []를 사용하여 배열을 작성하는 PHP의 단축키가 편리하지만, id 및 name 속성에는 해당 문자가 올바르지 않습니다.

난 그냥 같은 일을했고, 나는 당신의 체크 박스 모두 동일한 이름 ("테스트"가 아닌 "테스트 [속성이있는 경우 간단한 대답은 http://docs.jquery.com/Plugins/Validation/Methods/minlength#length

test: { minLength: 1 } 

에 묻혀 엑스]").

+2

대괄호는'@ 이름 ' 모든 HTML 버전의 속성 그것들은 또한 HTML5에서'@ id' 속성으로 합법적입니다. – jasonkarns

0

name 속성의 요점은 관련된 체크 박스/라디오 버튼을 함께 그룹화하는 것입니다. 따라서 그룹으로 작동하는 그룹의 확인란은 모두 동일한 name 속성을 가져야합니다 (그러나 각 속성은 고유 한 id 속성을 가짐). 당신이 가지고 가정 :

<input type="checkbox" name="test" id="testid1"> 
<input type="checkbox" name="test" id="testid2"> 

은 다음 JS 작동합니다 :

$(formSelector).validate({ 
    rules: { 
    test: "required" 
    }, 
    messages: 
    test: "Please select an item" 
    } 
}); 
0
jQuery를하지 않고

자바 스크립트 체크 박스 그룹 확인 :

<script>  
    function checkboxGroup(frm) { 
     // set send to false first 
     bSend = false; 
     // array of all inputs in the form 
     aInputs = frm.getElementsByTagName("input"); 
     // loop through the inputs array 
     for(i=0;i<aInputs.length; i++) { 
      if(
       aInputs[i].getAttribute("type")=="checkbox" 
       && 
       aInputs[i].getAttribute("name")=="test[]" 
      ) { 
       // If one of the checkeboxes named test[] 
       // is checked, bSend will be set true   
       if(aInputs[i].checked) bSend = true; 
      } 
     } 
     // If none of the checkboxes named test[] are checked 
     // bSend will still be false hence not send the form 
     return bSend; 
    } 
</script> 

나는 시험에 사용되는 HTML 양식 :

<form method="post" onsubmit="return checkboxGroup(this)"> 
    <input type="checkbox" name="test[]" value="name 1"> 
    <input type="checkbox" name="test[]" value="name 2"> 
    <input type="checkbox" name="test[]" value="name 3"> 
    <input type="checkbox" name="mom[]" value="name gg"> 
    <input type="submit" value="test"> 
</form> 
관련 문제