반응형
for each 문에서 결과값을 리턴 받을 때
아래와 같은 코드로 실행하게되면 원하는 값을 얻지 못합니다.
Check: function() {
$("input[name='chkgroup']:checked").each(function() {
if (!$(this).is(":checked")) {
alert("잘못 체크하셨습니다.");
return false;
}
});
return true;
}
...
const result = check();
//항상 retun true 반환
정상적인 값을 반환 받을 수 없는 이유는 function 내에 들어있는 each 문은 또다른 function 이기때문에
each 문에서 return false 는 break 과 같은 역할을 하여 each 함수를 빠져나갈 뿐이기 때문입니다.
정상적인 결과를 return 받기 위해선 아래와 같이 처리해야합니다.
Check: function() {
var result = true;
$("input[name='chkgroup']:checked").each(function() {
if (!$(this).is(":checked")) {
alert("잘못 체크하셨습니다.");
result = false;
return false;
}
});
return result;
}
...
const result = check();
//체크가 안된 checkbox가 있을경우 retun false 반환
728x90
반응형
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] Ctrl 새탭 , Shift 새창 띄우기 (0) | 2021.11.25 |
---|---|
[JavaScript] Event KeyCode 목록 및 코드예제 (0) | 2021.11.19 |
[Javascript] 문자열 앞에 0 채우기 (0) | 2021.11.15 |
[JavaScript] 자주쓰는 정규 표현식 (2) | 2021.11.13 |
[Javascript] html2canvas + jspdf 사용방법 (0) | 2021.11.05 |