在我的应用程序中,只有内联处理程序可以使用。
这是我的javascript函数的一部分
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'在没有按键,点击或模糊输入的情况下“onDeviceReady”时显示警告。但是我的代码仅在我使用内联处理程序时才有效,例如'input type .... onblur =“alert('onblur')”'。 我的问题是什么?
感谢。
答案 0 :(得分: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") };