테스트 사이트 - 개발 중인 베타 버전입니다

잘 안됩니다. 채택완료

머시기거시기 6년 전 조회 1,784

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개

채택된 답변
+20 포인트
플래토
6년 전

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

</p>

<p> if ($(":input:radio[name=wr_209]:checked").val()  == "서울") {

        if ($(":input:text[name=wr_area]").val() !== "지방" && $(":input:text[name=memo]").val() == '')  {

            alert("지방이라 패스되었으며 memo를 기재해주세요.");</p>

<p>        }    

  }</p>

<p>

 

1번라인은 wr_209가 서울이면

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

 

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

                 memo가 없으면

         alert을

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

 

좀 이상하지 않으신가요?

 

결국 

wr_area 의 값이 지방이 아니고 

wr_209의 값이 서울이면

alert이 등장합니다.

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

머시기거시기
6년 전
그렇군요,,,
209가 서울이면서 memo값이 없으면 얼럿
이때 wr_area가 지방일 때는 209가 서울이라도 얼럿 제외시키려면 어떻게 해야 할까요?
플래토
6년 전
@머시기거시기

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

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

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


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

복합적일지라도 하나하나는결국 true / false 중 하나가 되거든요
머시기거시기
6년 전
감사합니다 참고해서 몇시간 삽질해서 고쳤습니다.

&& && && 세가지 조건을 만족하면 얼럿 띄워라그...ㅋ

댓글을 작성하려면 로그인이 필요합니다.

플래토
6년 전

wr_209 가 '서울'이면서

wr_area 가 '지방'이 가능한 구조네요

값을 살펴보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인