2011-07-27 6 views
0

http://www.hcfmissoula.com/grants/compassionate-care-grant자바 스크립트 가능성으로 인해 충돌

나는이 간단한 라디오 버튼 양식을 가지고, 작동하지 않는, 각 질문에 대한 사용자 답변 "예"하면, 나는 숨겨진 링크가 하단에 표시하고 싶습니다. 나는 네의 모든 버튼을 클릭하면 링크가 #pdflink에 표시되지

<script type="text/javascript"> 
$('input:radio').change(function(){ 
    if(
     ($('input:radio[name=group1]:checked').val() == 'Yes') && 
     ($('input:radio[name=group2]:checked').val() == 'Yes') && 
     ($('input:radio[name=group3]:checked').val() == 'Yes') && 
     ($('input:radio[name=group4]:checked').val() == 'Yes') 
    ){ 
     document.getElementById('pdflink').innerHTML = '<div><a href="http://www.mydomain.com/somefile.pdf">grab the file here</a></div>'; 
    } 
    else { 
     document.getElementById('pdflink').innerHTML = ''; 
    } 

}); 
</script> 

<form name="myform" action="" method="POST"> 
<div><br> 
<p>Question 1?</p> 
<input type="radio" name="group1" value="Yes"> Yes<br> 
<input type="radio" name="group1" value="No"> No<br> 
<hr> 
<p>Question 2?</p> 
<input type="radio" name="group2" value="Yes"> Yes<br> 
<input type="radio" name="group2" value="No"> No<br> 
<hr> 
<p>Question 3?</p> 
<input type="radio" name="group3" value="Yes"> Yes<br> 
<input type="radio" name="group3" value="No"> No<br> 
<hr> 
<p>Question 4?</p> 
<input type="radio" name="group4" value="Yes"> Yes<br> 
<input type="radio" name="group4" value="No"> No<br> 
</div> 
</form> 

<div id="pdflink"> 
</div> 

: 여기에 내가 함께 일하고 있어요 코드입니다.

답변

3

업데이트는 : 전에 $('input:radio').change로 시작하는 코드가 바로 실행됩니다

<script type="text/javascript"> 
$(document).ready(function() { 
    $('input:radio').change(function(){ 
     // etc. 
    }); 
}); 
</script> 

<form name="myform" action="" method="POST"> 
<!-- etc. --> 

, : 내 대답은 아래를 바탕으로, 여기에이 작품을 만들기 위해 파일을 설정해야하는지의 조각이다 다음 HTML이 렌더링되어 DOM에 추가되었습니다. $(document).ready 호출에서 코드를 래핑하여 문서가로드 된 후 을 실행하도록해야합니다.

그렇지 않으면 코드가 올바르게 작동한다는 증거로 here을 참조하십시오. jsFiddle가 자동으로처럼 $(document).ready 전화 내부의 자바 스크립트 프레임의 코드를 넣습니다 :

$(document).ready(function() { 
    // your code here 
}); 

은 또한 같은 일을 달성하기 위해보다 일관된 방법을 here를 참조 (jQuery를하고 내장의 jQuery를뿐만 아니라 조합을 사용합니다 JavaScript 함수에서). 순전히 제안.

+0

말을하지만, 어디 코드의이 비트를 삽입합니까? 헤더에서 이미 js 1.6.2를 호출하고 있습니다 ... – blackessej

+0

@blackessej : 내 업데이트를 참조하십시오. –

+0

예제에서 자바 스크립트 주위에 해당 코드를 래핑하고 싶습니다. 또한 모든 스크립트 블록을 태그가 닫히기 바로 전에 페이지 하단으로 이동해야합니다. http://developer.yahoo.com/performance/rules.html –

0

크롬에서 코드를 보면이 사실을 알 수 있습니다. 귀하의 앰퍼샌드 탈출지고와 크롬 그래서, 당신은 내가 자바 스크립트와 멍청한 놈이기 때문에 용서해야합니다 compassionate-care-grant:197Uncaught SyntaxError: Unexpected token ILLEGAL

if(
    ($('input:radio[name=group1]:checked').val() == 'Yes') &#038;&#038; 
    ($('input:radio[name=group2]:checked').val() == 'Yes') &#038;&#038; 
    ($('input:radio[name=group3]:checked').val() == 'Yes') &#038;&#038; 
    ($('input:radio[name=group4]:checked').val() == 'Yes') 
){ 
+0

사이드 노트, 포함 된 스크립트를 정리해야합니다. 적어도 세 가지 jQuery가 있습니다. – Dennis

관련 문제