2012-04-03 2 views
2

배열에 확인란 값을 저장하고 싶지만 selectList 대신 selectList[]이므로 유효성 검사 규칙을 사용할 수 없습니다. 나는 이드를 시도했으나 규칙은 그 이름에만 묶이는 것 같다.jquery 유효성 검사 배열 입력에 대한 규칙 추가

HTML :

<input id='sendList' type='checkbox' name='selectList[]' value='$set[ListID]'> 

JS 규칙 :에서

$("#selectList").validate({ 
    rules: { 
     'selectList[]': { 
      required: true, 
      minlength: 1 
     } 
    } 
}); 

:

$("#selectList").validate({ 
     rules: { 
      selectList[]: { 
       required: true, 
       minlength: 1 
      } 
     } 
    }) 

}); 

답변

0

왜 따옴표 안에 selectList[]을 포장 해 주셔서 감사합니다, 그들은 식별자 (시도한 방식), 숫자 또는 문자열 일 수 있습니다.

작업 번호 : http://jsfiddle.net/rMgLG/

+2

사실이 아닌 작업 대답이다. jQuery 유효성 검사는 이름이 같은 여러 필드에 대한 유효성 검사를 허용하지 않으므로 위의 answeronl 필드에서 'selectList []'라는 첫 번째 필드의 유효성이 검사되어 필드 배열을 게시하려고하면 도움이되지 않습니다. – jtheman

+0

저를위한 그것의 일 .......... 감사합니다 !!!!!!!!! –

2

문제는 기성 jquery.validate.js 만 [] 카테고리의 첫 번째 요소의 유효성을 검사한다. 그래서 우리는 조금 수정해야합니다.

이 jquery.validate.js에서 checkForm라는 함수를 찾을 수 있습니다, 우리는 다음과 같이 수정해야한다 :

checkForm: function() { 
this.prepareForm(); 
for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) { 
if (this.findByName(elements[i].name).length != undefined && this.findByName(elements[i].name).length > 1) { 
for (var cnt = 0; cnt < this.findByName(elements[i].name).length; cnt++) { 
this.check(this.findByName(elements[i].name)[cnt]); 
} 
} else { 
this.check(elements[i]); 
} 
} 
return this.valid(); 
}, 
관련 문제