2013-08-19 2 views
0

Итак, я прошел учебник по обработчикам событий. Я создал кнопку в соответствии с инструкциями, а затем, когда я нажимаю на нее, мне нужно отобразить предупреждение. Это оно. Но это не сработает. Вот мой HTML-код:Событие click от javascript на кнопке не срабатывает

<button id="submit">Submit</button> 

А вот мой Javascript код:

var myButton = document.getElementByID("submit"); 
myButton.onclick = function(){ 
alert("YOu clicked on this button"); 
    } 

Я использую внешний JS файл, и я включил его в HTML из заголовка документа.

+0

Это близко; используйте 'getElementById', а не' getElementByID' –

+0

Используйте document.getElementById ('submit'); вместо этого –

+1

Вам нужно научиться использовать консоль ошибок вашего браузера. Он сказал бы вам, что 'document.getElementByID' не является функцией. И как только вы исправите эту проблему, она скажет вам, что еще не так. – ruakh

ответ

10

document.getElementByID("submit"); - это Id вместо ID

Edit: Я чувствую себя очень плохо, за то, что это один вкладыш в качестве ответа, так, чтобы добавить к тому, что другие говорят об обучении, как использовать консоль браузера, как инструмент отладки, вы должны попытаться найти редактор IDE/текста с автозаполнением, чтобы сохранить такие головные боли, особенно когда вы только начинаете.

+0

Итак, я понял, как использовать веб-инспектор Safari. Теперь, когда я его исправляю, он говорит: «Null не является объектом (myButton.onclick = function() { \t alert (« Вы нажали эту кнопку »);)" – user2694983

0

это может быть опечатка. Это getElementById не ID

0

Как указано выше, используйте документ.getElementById ("submit") с идентификатором нижнего регистра. Кроме того, вы можете использовать setAttribute, чтобы предупреждение срабатывало при нажатии кнопки, а не сразу открывать всплывающее окно, когда встречается сигнальная строка.

<script language="javascript"> 

    var myButton = document.getElementById("submit"); 
    myButton.setAttribute("onclick", "alert('You clicked on this button')"); 

</script> 
1

Вы можете иметь вопрос, где document.getElementById() происходит до того, как элемент создается на этой странице. Попробуйте включить JavaScript в событие onload или включите его после кнопки в вашем HTML.

+0

Это сработало. Я бы дал один голос за ваш ответ, но, видимо, для новых пользователей не допускается голосование. В любом случае, большое спасибо. – user2694983

0

изменить с document.getElementByID до document.getElementById и убедиться, что ваш скрипт остается ниже всех элементов в теле. Пример:

<body> 
<button id="submit">Submit</button> 

<script type="text/javascript"> 

    var myBtn = document.getElementById("submit"); 
    myBtn.onclick = function() 
    { 
     alert("this is a click event button"); 
    }; 

</script> 

</body> 

или вы можете поместить скрипт внутри <head></head> путем добавления этого события ниже вашего сценарий:

function initialize() 
{ 
    // paste your code in here 
} 

document.addEventListener("DOMContentLoaded",initialize,false); 

Надеется, что это работает!

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