2013-05-13 4 views
2

У меня есть следующий код в моем javascript. Я хотел бы, чтобы предупреждение произошло, если пользователь проверяет переключатель, но это происходит, когда страница загружается, а НИЧЕГО не происходит, когда радиокнопка проверяется. Зачем?Почему мое событие onchange запускается, когда загружается моя страница, а не когда я нажимаю на свой переключатель?

var myRadioButton = document.getElementById("myRadioButton"); 
myRadioButton.onchange=alert("Checked!"); 

Радиокнопка запускается беспрепятственно. В HTML это выглядит следующим образом:

<div class="myRadioButton"><input type="radio" id="myRadioButton" name="radioButtons" />&nbsp; This is my radio button 
</div> 

Почему на земле бы Javascript думает, что OnChange событие произошло при загрузке страницы? И почему он не распознает изменения, когда я действительно проверю переключатель?

Фактически, независимо от того, какой элемент, который я использую с помощью «onchange», вызывает всплывающее предупреждение при загрузке страницы без какого-либо взаимодействия с пользователем. Я не понимаю, как работает «onchange»?

ответ

4

Что вы имеете в виду сделать это

myradiobutton.onchange = function() { alert('Checked'); }; 

Что вы сделали будет выполнить в alert -функции и присвоить значение возврата этой функции в качестве обработчика события к событию onchange (которое ничего не будет делать при выполнении)

+0

Gotcha. Благодаря! Я полный noob. Очень признателен. –

0

В коде

myradiobutton.onchange = alert('Checked') 

Вы на самом деле называется функцией оповещения, и присваивается возвращаемое значение в качестве обработчика события.

2

попробовать

<script> 
    var myRadioButton = document.getElementById("myRadioButton"); 

    myRadioButton.onchange = function() { alert("Checked!") }; 
</script> 
+0

Nice , но важным битом является обернуть этот код в обработчик ** document.ready ** event –