적당히 가보자

적당히 가보자

QA

적당히 가보자

본문

이건 갈때까지 가보자는 아니그..

적당히 가겠습니다...ㅎ

 

<input type='radio' id="sms1" value='' name='wr_210' <? if ($write[wr_210] == '안내') echo "checked"?> onclick="smsPrc('안내',this)">

 

위의 라디오버튼 선택시

 

<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"); 
        }
        
    }
});
</script>    

wr_185값이 0이면

위와 같이 선택안되게 하고 얼럿을 띄우는 건데요,,

잘됩니다.

 

이와 함께 

onclick="smsPrc('안내',this)" 이것도 안되게 하려면 어떻게 고쳐줘야 할른지...

고수님의 도움이 절실합니다.

이 질문에 댓글 쓰기 :

답변 1

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>  

 

 

 

 

 

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

회원로그인

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