2015-08-25 3 views
0

попробовал пару вещей и не увенчался успехом. Что мне здесь не хватает? Я просто хочу сделать простое оповещение или журнал, и я не могу. Вот что у меня есть:onclick функция, если флажок отмечен событие

function toggleEmail() { 
 
    var isChecked = document.getElementById("subscribe"); 
 
    if (isChecked.checked) { 
 
    console.log('Yep, my function is being called'); 
 
} 
 

 
} 
 

 
toggleEmail();
<title>JavaScript Challenges</title> 
 
    </head> 
 
    <body> 
 
    <form action=""> 
 
     <fieldset> 
 

 
     <legend>Email subscriptions</legend> 
 

 
     <p id="subscribe"> 
 
      <label> 
 
      <input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 
 
      Yes! I would like to receive all of your free candy! 
 
      </label> 
 
     </p> 
 

 
     <p id="emailpara"> 
 
      <label>

+0

У вас проблема с областью, ваша правильно инициализированная [скрипка] (http://jsfiddle.net/hrt3ozma/) работает нормально. (Не «onLoad», «Нет обертывания» в ''.) – Teemu

ответ

1

В JSFiddle, HTML на левой верхней стороне, уже есть раздел <body>. Ваша функция работает. Единственное, что вам нужно изменить, это на левой стороне Нет обертки - в <head>. Это означает, что JavaScript работает в <head>.

<head> 
    <script>JavaScript</script> 
</head> 
<body> 
    HTML 
</body> 

Или Нет обруча - в <body> также работает. Это означает, что JavaScript работает после HTML в разделе <body>.

<head> 
<head> 
<body> 
    HTML 
    <script>JavaScript</script> 
<body> 

Example

+0

Спасибо P.Leger .... что полностью сделал трюк! – Lucky500

+0

Добро пожаловать! – Sun

0

Try, изменив эту строку:

<input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 

К

<input type="checkbox" name="subscribe" id="subscribe" onchange="toggleEmail()" /> 
+0

Привет, ребята, я изменил на onchange, но я продолжаю получать ошибку, которую не задает toogleEmail. – Lucky500

+0

Вот скрипка http://jsfiddle.net/Lucky500/j0vfzrwy/28/ – Lucky500

+0

Где вы добавляете javascript в свой html? Если вы написали js во внешнем файле, вам нужно связать его в html. Помимо ссылки на ваш скрипт в конце тела вашего html. Он должен работать должным образом. Удачи. – Imran

1

Проблема с скрипкой вы дали в своем комментарии (http://jsfiddle.net/Lucky500/j0vfzrwy/28/) является то, что функция toggleEmail создается в обработчике onLoad событий для страницы и является частью этой сферы, а являясь частью глобального масштаба.

При использовании прямого связывания в HTML-разметки, как это:

<input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 

Тогда ваша функция должна быть в глобальном масштабе.

Если вы только что изменили свою скрипту, чтобы использовать «Нет обертывания - в <head>», она работает, потому что функция создается в глобальной области. Примерно так: http://jsfiddle.net/j0vfzrwy/32/.

Смежные вопросы