(재질문)한 페이지 내에 여러 개 validation이 필요할 때
- 작성자 :
- 이*지
- 작성일 :
- 2017-03-27 15:14:12
- 조회수 :
- 1,538
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
validator 태그 쓴 거구요 그걸 두 번 쓰니 앞서 호출된 validator의 required() 함수를 두번째 호출된 required() 함수가 덮어버려서 첫번째 폼의 validation이 망가진다는 질문이었습니다
validator 태그를 두 번 쓰면 아래와 같이 두 개의 자바스크립트 소스가 생성되는데 bCancel을 비롯하여 required() 함수와 minlength()는 전역 범위의 변수/함수이기 때문에 두 번째 생성된 자바스크립트 의 required()와 minlength()만 남아있게 됩니다. 그렇게 되면 validateVO1함수에서는 name 필드가 required가 아님에도 불구하고 VO2를 위해 생성된 두번째 required()에 의해 함수 name 필드값을 요구하게 됩니다.
이 부분을 해결할 수 있는지 궁금합니다.
<script type="text/javascript">
var bCancel = false;
function validateVO1(form) {
if (bCancel)
return true;
else
return validateRequired(form) && validateMinLength(form);
}
function required () {
this.aa = new Array("userid", "아이디은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
}
function minlength () {
this.aa = new Array("userid", "아이디은(는) 10자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 3자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
</script>
<script type="text/javascript">
var bCancel = false;
function validateVO2(form) {
if (bCancel)
return true;
else
return validateRequired(form) && validateMinLength(form);
}
function required () {
this.aa = new Array("userid", "아이디은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
function minlength () {
this.aa = new Array("userid", "아이디은(는) 10자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 3자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
</script>
validator 태그를 두 번 쓰면 아래와 같이 두 개의 자바스크립트 소스가 생성되는데 bCancel을 비롯하여 required() 함수와 minlength()는 전역 범위의 변수/함수이기 때문에 두 번째 생성된 자바스크립트 의 required()와 minlength()만 남아있게 됩니다. 그렇게 되면 validateVO1함수에서는 name 필드가 required가 아님에도 불구하고 VO2를 위해 생성된 두번째 required()에 의해 함수 name 필드값을 요구하게 됩니다.
이 부분을 해결할 수 있는지 궁금합니다.
<script type="text/javascript">
var bCancel = false;
function validateVO1(form) {
if (bCancel)
return true;
else
return validateRequired(form) && validateMinLength(form);
}
function required () {
this.aa = new Array("userid", "아이디은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
}
function minlength () {
this.aa = new Array("userid", "아이디은(는) 10자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 3자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
</script>
<script type="text/javascript">
var bCancel = false;
function validateVO2(form) {
if (bCancel)
return true;
else
return validateRequired(form) && validateMinLength(form);
}
function required () {
this.aa = new Array("userid", "아이디은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 필수 입력값입니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
function minlength () {
this.aa = new Array("userid", "아이디은(는) 10자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='10'; return this[varName];"));
this.ab = new Array("name", "이름은(는) 3자 이상 입력해야 합니다.", new Function ("varName", "this.minlength='3'; return this[varName];"));
}
</script>
A
안녕하세요.
표준프레임워크 센터 입니다.
apache validator 사용은 구조상 한개의 폼에 대한 validator:javascript 한개만 사용이 가능합니다.
validator:javascript 두개 사용시 required , minlength 메소드가 겹치게 됩니다.
validator:javascript는 TagLibary사용의 org.springmodules.validation.commons.taglib.JavascriptValidatorTag 빈의 생성 됩니다.
해당 클래스 API document는 아래에서 확인 가능합니다.
http://www.springbyexample.org/maven/site/org.springbyexample.validation/0.94/apidocs/index.html?org/springmodules/validation/bean/conf/loader/xml/AbstractXmlBeanValidationConfigurationLoader.html
감사합니다.
표준프레임워크 센터 입니다.
apache validator 사용은 구조상 한개의 폼에 대한 validator:javascript 한개만 사용이 가능합니다.
validator:javascript 두개 사용시 required , minlength 메소드가 겹치게 됩니다.
validator:javascript는 TagLibary사용의 org.springmodules.validation.commons.taglib.JavascriptValidatorTag 빈의 생성 됩니다.
해당 클래스 API document는 아래에서 확인 가능합니다.
http://www.springbyexample.org/maven/site/org.springbyexample.validation/0.94/apidocs/index.html?org/springmodules/validation/bean/conf/loader/xml/AbstractXmlBeanValidationConfigurationLoader.html
감사합니다.