728x90
등록 함수를 코딩할 때 유효성 체크를 하기 위해 화면에 입력된 값을 체크하는 경우 자주 발생할 수 있습니다.
함수내에 jquery 의 each() 함수가 있을 경우 return false 를 올바르게 사용해야 합니다.
잘못된 예
아래와 같은 예제 소스가 있다고 가정할 때 유효성 체크하는 함수 내에 each 로 수량 체크를 하고 있습니다. 이때 each 내에 있는 return false 는 each 를 중단하는 break 역활을 할 뿐이고 함수를 멈추는 것은 아닙니다.
// 등록
function fn_promInfrSave(){
// 유효성 체크
if (!fn_validation("promInfrSave")){
return false;
}
}
// 유효성 체크
function fn_validation(flag){
switch (flag){
case "promInfrSave" :
$(".promPrdMinQty").each(function (index){
if (Number($(this).val().replaceAll(',', '')) <= 0){
alert("최소수량을 입력해 주세요.");
$(this).focus();
return false;
}
});
break;
}
return true;
}
올바른 예
try catch 문을 사용해서 each 를 빠져 나오고 결과에 따라 return false 를 해줘야지 정상적으로 함수를 빠져나올 수 있고 return 값을 전달 할 수 있습니다.
// 등록
function fn_promInfrSave(){
// 유효성 체크
if (!fn_validation("promInfrSave")){
return false;
}
}
// 유효성 체크
function fn_validation(flag){
switch (flag){
case "promInfrSave" :
try {
$(".promPrdMinQty").each(function (index){
if (Number($(this).val().replaceAll(',', '')) <= 0){
toastr.error("최소수량을 입력해 주세요.");
$(this).focus();
throw 'stop';
}
});
} catch(Exception){
if (Exception !== 'stop') throw Exception;
else return false;
}
break;
}
return true;
}
LIST
'Develop' 카테고리의 다른 글
[Javascript] html 테이블을 엑셀 다운로드 하기 (2) | 2024.08.30 |
---|---|
[타임리프] javascript 에서 타임리프 변수 사용하기 (0) | 2024.08.28 |
타임리프 Thymeleaf 체크박스 배열값 checked 방법 (0) | 2024.08.08 |
Get 호출 시 파라미터 배열값 전송하는 방법과 Java 에서 파싱하는 방법 (0) | 2024.08.07 |
환율 API 사용하기 수출입은행 Open API 제공 (0) | 2024.06.26 |