2011-07-27 19 views
0

http://www.hcfmissoula.com/grants/compassionate-care-grantJavascriptがおそらく競合

私はこの単純なラジオボタンのフォームを持っているため、動作していない、と各質問に対するユーザーの回答「はい」ならば、私は隠されたリンクが下部に表示します。私は、はいボタンのすべてをクリックすると、リンクが#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コール内のJavaScriptフレームからコードを置く:

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

はまた同じことを達成するために、より一貫性のある方法のためhereを参照してください(jQueryと内蔵のjQueryのだけではなく、組み合わせを使用していますJavaScript関数では)。純粋に示唆。

+0

を言っているが、どこで、コードのこのビットを挿入していますか?私はすでにヘッダ内でjs 1.6.2を呼び出しています... – blackessej

+0

@blackessej:私の更新を見てください。 –

+0

あなたの例では、javascriptの周りにそのコードを折り返したいと思っています。また、すべてのスクリプトブロックをページの一番下まで、つまりタグの直前に移動してください。 http://developer.yahoo.com/performance/rules.html –

0

Chromeでコードを見ると、これが表示されます。あなたのアンパサンドはエスケープなっているとChromeだから、あなたは私がJavaScriptでのnoobだから私を許しする必要があります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

サイドノート、付属のスクリプトをクリーンアップする必要があります。私は少なくとも3つの異なるjQueryを見る。 – Dennis