잘 안됩니다.

잘 안됩니다.

QA

잘 안됩니다.

본문

209값이 서울이면 경고를 띄우려는데 단 wr_area가 지방이면 패스하고 memo에 값이 없으면 경고를 띄우려는 것입니다...

그런데 wr_area값이 지방인데도 경고가 뜹니다. 뭐가 잘못된 걸까요?

 

 

<script>
//경고문구
$("input").click(function() {
    if ($(":input:radio[name=wr_209]:checked").val()  == "서울") {
        if ($(":input:text[name=wr_area]").val() !== "지방" && $(":input:text[name=memo]").val() == '')  {
            alert("지방이라 패스되었으며 memo를 기재해주세요.");

        }    
    }
});
</script>

이 질문에 댓글 쓰기 :

답변 2

로직을 다시 확인해봤습니다.


 if ($(":input:radio[name=wr_209]:checked").val()  == "서울") {
        if ($(":input:text[name=wr_area]").val() !== "지방" && $(":input:text[name=memo]").val() == '')  {
            alert("지방이라 패스되었으며 memo를 기재해주세요.");
        }    
  }

 

1번라인은 wr_209가 서울이면

2번라인블럭을 수행하는데

 

   2번라인은 wr_area의 값과 타입비교가 지방이 아니고 " " 문자열이 아니고

                 memo가 없으면

         alert을

              "지방이라 패스되었으며...."

 

좀 이상하지 않으신가요?

 

결국 

wr_area 의 값이 지방이 아니고 

wr_209의 값이 서울이면

alert이 등장합니다.

 

 

 



원하는 형태가 서울이면 무조건 패스
지방이고 메모가 없으면 얼럿 이것이라면

if (서울 여부 체크) {
}
else if (지방 체크 } {
    if (메모없음) {
        alert( "메모없어요");
    }
}

의 구조로 만드는게 가장 가독성이나 논리적인 표현이 단순합니다.


중요한건
논리식을 만들때
단순 명료하게 로직을 분리하세요

복합적일지라도 하나하나는결국  true / false 중 하나가 되거든요

답변을 작성하시기 전에 로그인 해주세요.
전체 530
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT