2010-12-30 14 views
0

ライブコード:http://jsfiddle.net/vy4nY/私は間違って何をしていますか?

私はthis challengeですが、いくつか問題があります。私は電子メールアドレスボックスをチェックボックスをクリックしたときにのみ表示させようとしています。何を私は間違ってやったのですか?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
    <head> 
    <title>JavaScript Challenges</title> 
    <style type="text/css"> 
    #emailpara {visibility:hidden;} 
    </style> 
    </head> 
    <body> 
    <form action=""> 
     <fieldset> 

     <legend>Email subscriptions</legend> 

     <p id="subscribepara"> 
      <label> 
      <input type="checkbox" name="subscribe" id="subscribe"> 
      Yes! I would like to receive the occasional newsletter via email. 
      </label> 
     </p> 

     <p id="emailpara"> 
      <label> 
      Email Address: 
      <input type="text" name="email" id="email"> 
      </label> 
     </p> 

     </fieldset> 
    </form> 
     <script type="text/javascript"> 
document.getElementById('subscribe').onclick = (document.getElementById('subscribe').checked ? (document.getElementById('emailpara').style.visibility = 'visible') : (document.getElementById('emailpara').style.visibility = 'hidden')); 
     </script> 
    </body> 
</html> 

答えて

3

のonclickハンドラ関数でなければなりません。使用:

document.getElementById('subscribe').onclick = function() { 
    document.getElementById('emailpara').style.visibility = this.checked ? 'visible' : 'hidden'; 
} 
+0

ダング! 3秒の速さに加えて、コードを改善する時間がありました。:-) –

+1

Heh、私は気分を知っています...彼らはそれらのゲームショーのようなブザーが必要です:) –

1

あなたは関数としてそれを持っている必要があります:

document.getElementById('subscribe').onclick = function() { 
      document.getElementById('subscribe').checked ? document.getElementById('emailpara').style.visibility = 'visible' : document.getElementById('emailpara').style.visibility = 'hidden'; 
      } 

更新jsFiddle:http://jsfiddle.net/yahavbr/vy4nY/1/

関連する問題