2014-01-24 2 views
0

В моем приложении работают только встроенные обработчики.Работает только встроенный обработчик

Это часть моей яваскрипта функции

function onDeviceReady() { 
     alert('ready'); 
     document.querySelector('#idCpf').onkeypress = alert('keypress'); 
     document.getElementById("idCpf").onclick=alert("click"); 
    } 

И это моя часть моего кода HTML

<input type="tel" autocomplete="on" id="idCpf" onblur="alert('onblur')" placeholder="Seu CPF" required> 

О функции «onDeviceReady» только первые предупреждения работ, и «OnKeyPress» и 'onclick' покажет мне предупреждение, когда fucintion 'onDeviceReady' без нажатия кнопки, щелкните или размытия ввода. Но мой код работает только тогда, когда я использую встроенные обработчики, например, для типа ввода ... onblur = "alert ('onblur')". В чем моя проблема?

Спасибо.

+2

Вы звоните 'alert' и ASSIG возвращаемого значения' alert' свойствам, а не функция. Вы должны назначить функцию этим свойствам. –

+3

Возможный дубликат функции [Onclick() при работе] (http://stackoverflow.com/questions/12270046/onclick-function-on-working) –

ответ

2
document.querySelector('#idCpf').onkeypress = alert('keypress'); 

называет alert('keypress'); и присваивает возвращаемое значение alert('keypress'); как обработчик события.

alert('keypress'); Выполняется немедленно, а не при срабатывании события.

Чтобы назначить обработчик события вы должны сделать,

document.querySelector('#idCpf').onkeypress = function() { alert('keypress') }; 
document.getElementById("idCpf").onclick= function() { alert("click") }; 
+0

Спасибо Pilot, теперь мой код делает то, что я хочу! – Caaarlos

+0

Добро пожаловать @Caaarlos –

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