2014-02-18 3 views
2

이 코드는 두 번째 라디오 버튼이 선택되었음을 감지했기 때문에 아래의 경우 경고가 표시됩니다. 그러나 첫 번째 것을 선택하고 두 번째를 다시 선택하면 경고가 표시되지 않습니다. 왜요?라디오 버튼에서 선택된 값을 계속 탐지하십시오.

http://jsfiddle.net/h6j58/3/

<input type="radio" id="s530351a84b2aa_tipo_0" name="radioName" required="required" value="0" > 
<input type="radio" id="s530351a84b2aa_tipo_1" name="radioName" required="required" value="1" checked="checked"> 

$(document).ready(function(){ 
    if($("input[name=radioName]:checked").val() == 1) 
    { 
    alert("fajslf");  
    } 
}); 
+0

을 시도 할 수 있습니다()' –

+0

당신은'change' 이벤트를 설정해야하지만 준비 문서에 그것을 얻기 위해 노력하고 있기 때문이다. – Jai

답변

1

당신이 당신의 특정 radion이 document load에 체크하면 바로 확인, 이벤트를 캡처하지 않기 때문에 그것은 발생합니다. 당신은 다음 코드에서와 같이 라디오 버튼의 change 이벤트를 캡처해야합니다

$("input[name=radioName]").on("change", function() { 
    if($("input[name=radioName]:checked").val() == 1) 
    { 
     alert("fajslf");  
    } 
}); 

Fiddle demo

+0

@ziiweb put $ ("input [name = radioName]") trigger ('change');'$ (document) .ready()'함수의 코드 라인 – Sergio

0

하자마자 documentready 같이이 if 문을 사용하기 때문에. 라디오 요소의 변경 사항을 감지하려면 change 이벤트 처리기를 추가해야합니다.

$("input[name=radioName]").on("change", function() { 
    if (this.checked && this.value === "1") 
    { 
     alert("fajslf");  
    } 
}); 

JSFiddle demo.

페이지가로드 될 때도 알림이 표시되어야합니다.

이 경우 수표를 별도의 기능으로 옮길 수 있습니다.

function checkRadio(elem) { 
    // If this element has a value of 1 and is checked, alert 
    if (elem.value === "1" && elem.checked) 
     alert("fajslf"); 
} 

// On radio change function, call checkRadio 
$("input[name=radioName]").on("change", function() { 
    checkRadio(this); 
}); 

// Call checkRadio on document ready, passing in the radio with value of 1 
checkRadio($('input[name=radioName][value=1]')[0]); 

JSFiddle demo : 여기가 유일한 인수로 요소를 취이 기능 checkRadio라고했습니다. 이 같은

+0

감사하지만 지금은 라디오 버튼을 클릭하지만 페이지를로드 할 때 라디오 버튼이 이미 선택되어 있는지 확인하는 방법은 무엇입니까? 페이지가 방금로드 될 때 경고를 던져야합니다. – ziiweb

+0

@ziiweb은 체크 아웃을 함수로 분리합니다. http://jsfiddle.net/h6j58/11/ 답변을 업데이트하겠습니다. –

0

http://jsfiddle.net/h6j58/6/

$(document).ready(function(){ 
    $('input[name=radioName]').change(function(){ 
    if($(this).val() == 1) 
    { 
    alert("fajslf");  
    } 
    }); 
}); 
+2

왜 이것이 다른 답변보다 더 많은 upvotes를 받았는지 잘 모르겠다. 'this.value'는'$ (this) .val()'대신에 사용되어야하며 라디오가 체크되었는지 여부를 확인하기위한 아무것도 없습니다. –

+0

아니요! 이 코드는 버그가 아닙니다.그것은 테스트했다;) –

+1

나는 그것이 버그를 가지고 있다고 말한 적이 없다. 나는 나쁜 연습 인'$ (this) .val()'을 사용하고 있으며 OP의 코드처럼 라디오 버튼이 선택되었는지 여부를 실제로 확인하지는 않는다고 말했습니다. –

0

나는 당신의 Fiddle demo을 업데이트했습니다.

$(document).ready(function(){ 
    $("input[name=radioName]").click(function() { 

     if($(this).prop('checked') && $(this).val() == 1) 
     { 
      alert("fajslf");  
     } 
    }); 
}); 
+0

이 라디오 버튼이 페이지에 동적으로 추가되면 Jquery "on()"메소드를 사용하십시오. –

0

당신은 당신은`변화를 해고하는 것을 잊었다이 방법

$(document).ready(function() { 
     $('input[name=radioName]:checked').change(function() { 

       alert("alert statements..."); 

     }); 
    }); 
관련 문제