2012-03-30 1 views
1

처음 라디오를 클릭하면 JQuery가 작동하지만 몇 초간 라디오 버튼을 누르면 오류가 발생합니다.JQuery .change()를 사용하여 여러 라디오 입력을 사용하여 CSS를 업데이트하는 중 오류가 발생했습니다.

JQuery를 사용하여 2 개 이상의 무선 질문으로 CSS의 페이지 텍스트를 업데이트하는 적절한 방법은 무엇입니까? 사용자가 클릭 할 때 여러 개의 라디오 버튼을 전환하는 것은 단순한 기본 if 조건이므로 무기한으로 작동해야합니다.

코드 :

Question 1 Here?<br /> 
<input type="radio" name="q1" id="q1-y" value="Yes" />Yes 
<input type="radio" name="q1" id="q1-n" value="No" />No 
<br /> 
Question 2 Here?<br /> 
<input type="radio" name="q2" id="q2-y" value="Yes" />Yes 
<input type="radio" name="q2" id="q2-n" value="No" />No 
<br /> 
Question 3 Here?<br /> 
<input type="radio" name="q3" id="q3-y" value="Yes" />Yes 
<input type="radio" name="q3" id="q3-n" value="No" />No 


<div id="a1"></div> 
<div id="a2"></div> 
<div id="a3"></div> 
<div id="aa"></div> 

내가 라디오 버튼에 체크 내용에 따라 div의에 텍스트를 삽입하려는

var q1 = $("input[name=q1]:radio"); 
var q2 = $("input[name=q2]:radio"); 
var q3 = $("input[name=q3]:radio"); 

var a1 = "foo"; 
var a2 = "bar"; 
var aa = "bas"; 

q1.change(function() { 
    $("input:checked").each(
    function() { 
     if ($(this).val() == "Yes") { 
      $("#a1").text(a1); 
     } else { 
      $("#a1").text(""); 
     }; 
    } 
    ); 
}) 

q2.change(function() { 
    $("input:checked").each(
    function() { 
     if ($(this).val() == "Yes") { 
      $("#a2").text(a2); 
     } else { 
      $("#a2").text(""); 
     }; 
    } 
    ); 
}) 

.change(); 

HTML. 위에서 언급했듯이 JQuery는 처음에는 작동하지만 3 회 이상 클릭하면 if 문이 작동하지 않습니다.

감사

+0

당신은'.change()를 가지고 찾으시는 것입니까? – paislee

답변

1

문제는이 라인에있다 : 그것은 단지 하나 설정해야합니다 경우는, 의 조건이 입력 확인 모든 표시할지 결정하는 데 사용되는 의미

$("input:checked").each(

결정을 알리는 라디오 버튼. 여러 개의 라디오 단추 세트를 확인해야 문제가 나타납니다. 빠른 수정은 다음과 같이 말합니다.

q1.change(function() { 
    $("input[name=q1]:checked").each(

각 변경 핸들러에 대해서도 마찬가지입니다. `대신`q3` 또 다른 변화 핸들러,

+0

고마워요. – xta

+0

@ user678696 도움을 드리겠습니다. 가능하면 upvote를 자유롭게 사용하십시오. – paislee