jquery validate 플러그인을 사용해보려고 알아보니
중복이름 가진 input의 경우 하나만 체크하는 버그(?)가 있다.
예를 들자면 아래와 같이 txt1 이름을 가진 input 객체가 3개 있다면 제일 위의것만 오류 체크하고
제일 위의것에 값이 있으면 나머지 2개는 값이 입력된것으로 보고 무시한다.
<input type="text" name="txt1">
<input type="text" name="txt1">
<input type="text" name="txt1">
이거 해결하는 방법은 jquery.validate.js에 정의되어 있는 checkForm 함수를 재정의 하면 된다.
jquery.validate.js 파일을 열어서 함수 내용을 수정하거나
아니면 함수 오버라이드 해서 사용하던지 결정하면 된다.
$.validator.prototype.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();
};
출처 : http://www.codeboss.in/web-funda/2009/05/27/jquery-validation-for-array-of-input-elements/