我有一些问题得到一个keyup事件在我的iPhone上触发,我的代码如下:
var passwordArray = ["word", "test", "hello", "another", "here"];
var test = document.getElementById('enter-password');
test.addEventListener('keyup', function(e) {
if (jQuery.inArray(this.value, passwordArray) != -1) {
alert("THIS IS WORKING");
} else {}
});
这个想法是,当用户输入#enter-password
字段时,当他们匹配了passwordArray
中的单词时,警报将触发。这适用于桌面,例如,一旦您输入word
,该功能将在您输入d
后立即启动。有没有办法让这个也适用于移动设备?
可以添加输入事件。这是一个在输入发生变化时触发的事件。在桌面和手机上都可以输入
test.on('keyup input', function(){
//code
});
关于jQuery Input Event
您可以使用三个事件(但您必须小心如何"组合"它们):
-
keyup:它适用于有键盘的设备,当你释放一个键(任何键,甚至是屏幕上没有显示任何东西的键,如ALT或CTRL)时触发;
-
touchend:它适用于触摸屏设备,当你将手指/笔从显示器上移开时触发;
-
input:当你按下一个键"并且输入改变"时触发(如果你按ALT或CTRL这样的键则不会触发此事件)。
test.on('keyup input', function(){
}
在基于键盘的设备上,这个函数被调用两次,因为事件keyup和input将被触发。
正确答案应该是:
test.on('keyup touchend', function(){
}
(该函数在keyup(台式机/笔记本电脑)或touchend(移动设备)上调用)
或者直接用
test.on('input', function(){
}
,但请记住,并不是所有的键(CTRL, ALT &
当触点从设备中移除时触发触点事件。
https://developer.mozilla.org/en-US/docs/Web/Events/touchend你可以将keyup和touchend事件传递给jQuery的.on()方法(而不是keyup()方法)来触发这两个事件的代码。
test.on('keyup touchend', function(){
//code
});
您应该添加一个输入事件。它可以在移动设备和电脑设备上使用。