채택완료

적당히 가보자

2018-05-20 (일) 06:59:18 2,631
|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

smsPrc('안내',this) 소스좀 올려주세요.

좀 이상하게 짜시는거 같아요. 

전체 소스도 올려 보세요. 그리고 페이지 주소도 올려보시면 좋구요.

<? if ($write[wr_210] == '안내') echo "checked"; ?> 에 의하면  wr_185의 상관 없이 체크드 되어 있는거 잔아요. 그게 님이하시려는 의도와 위배 되는데요. wr_185가 0임에도 이미 체크는되어 있을꺼 같은데요.

그뒤 사용자들이 라디오버튼이 이미 체크되어 있는데... 체크를 일부러 해제하러 갈 이유가 없어 보이는데요. 혹은 라이오버튼이 이미 체크되어 있는데 안내 메세지를 받으려고 다시 클릭하러 갈 이유가 없어 보여요.

그리고 뒤에 자바스크립트 소스도 체크가된건지를 구분 해야는데 체크된 것 중에 vla() 값으로 체크를 했는지 안했는지 구분하고 있구요. $("input:disabled").val("0").attr("disabled", "true");의 소스가 어떤건지 모르겠는데 의도가 불문명하네요. 

또 $("input").click(function() { 은 모든 input 엘리먼트에 이벤트를 다 걸린거 아시죠????

저렇게 쓴 순간 다른 input 요소들이 의도와 상관 없이 다 클릭이벤트가 걸립니다. 즉 다른 input도

클릭하면 저 로직에 빠져서 쓸데 없이 다 검증하고 나온다는 거죠. 

onclick="smsPrc('안내',this)" 에서 this 가 하는 역활이 없을꺼 같기도 하네요. 
 

전체적으로 로직이 꼬일가망성이 높네요. 그냥 해본말이구요.

이것 저것 고민 안하고 님에 대안 답변을 드리자면

<input type='radio' id="sms1" value='' name='wr_210' <? if ($write[wr_210] == '안내') echo "checked"; ?> onclick="smsPrc('안내',this)"> <!-- 삭제 하시구요 -->

그리고 위에 "checked" 소스에서 ;(세미콜론)이 하나 빠졌습니다.

<script>
    //선택 불가
    $("input").click(function() {
          if ($(":input:radio[name=wr_210]:checked").val()  == "") {
            if ($(":input:text[name=wr_185]").val() == "0" || $(":input:text[name=wr_185]").val() == '')  {
                alert("금액이 없으므로 메시지를 보낼 수 없습니다");
                $("input:disabled").val("0").attr("disabled", "true");
                return false;
            }else{
                $("input:disabled").val("0").attr("disabled", "false"); 
                smsPrc('안내',this); // 요기다 추가 해주세요.
            } 
        }
    });
</script>  

답변에 대한 댓글 1개

2018-05-21 (월) 09:23:55
친절한 설명까지 감사합니다.
코드 잘됩니다. 꾸벅

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