2010-12-30 6 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

온 클릭 핸들러 함수해야한다. 사용 :

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

dang! 3 초 빨라짐 더하기 코드를 더 잘 활용할 시간이 생겼습니다. :-) –

+1

ㅎ, 나는 그 감각을 알고 있습니다 ... 그 게임 쇼에서와 같이 부저가 있어야합니다 :) –

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/

관련 문제