Что я делаю неправильно? - PullRequest
0 голосов
/ 30 декабря 2010

ЖИВОЙ КОД: http://jsfiddle.net/vy4nY/

Я следую за этот вызов , но у меня возникли некоторые проблемы. Я пытаюсь, чтобы поле «Адрес электронной почты» отображалось только при нажатии на этот флажок. Что я сделал неправильно?

<!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>

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Обработчик onclick должен быть функцией. Использование:

document.getElementById('subscribe').onclick = function() {
    document.getElementById('emailpara').style.visibility = this.checked ? 'visible' : 'hidden';
}
1 голос
/ 30 декабря 2010

Вы должны иметь его как функцию:

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...