我有一些问题要在我的iPhone上启动一个keyup事件,我的代码如下:
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
,该功能就会立即开启。反正有没有让它适用于移动设备?
答案 0 :(得分:22)
您可以添加输入事件。这是一个在输入发生变化时触发的事件。输入适用于台式机和移动电话
test.on('keyup input', function(){
//code
});
您可以查看此答案,详细了解jQuery Input Event
答案 1 :(得分:10)
你可以使用三种事件(但你必须小心如何“结合”它们):
keyup :它适用于带键盘的设备,当你释放一个键(任何键,甚至是屏幕上没有显示任何键的键,如ALT或CTRL)时会触发它);
touchend :它适用于触摸屏设备,当您从显示屏上移开手指/笔时会触发它;
输入:当您按下“输入更改”键时触发它(如果您按下ALT或CTRL键,则不会触发此事件)。
输入事件适用于键盘设备和触摸屏设备,重要的是指出这一点,因为在接受的答案中,示例是正确但近似的:
test.on('keyup input', function(){
}
在基于键盘的设备上,此功能会被调用两次,因为事件 keyup 和输入都会被触发。
正确的答案应该是:
test.on('keyup touchend', function(){
}
(针对台式机/笔记本电脑的 keyup 或针对手机的 touchend 调用该功能)
或者您只需使用
即可test.on('input', function(){
}
但请记住,所有按键都不会触发输入事件(CTRL,ALT& co。不会触发事件)。
答案 2 :(得分:1)
从设备中删除触摸点时会触发touchend事件。
https://developer.mozilla.org/en-US/docs/Web/Events/touchend
你可以将keyup和touchend事件传递给.on()jQuery方法(而不是keyup()方法)来触发这两个事件的代码。
test.on('keyup touchend', function(){
//code
});
答案 3 :(得分:0)
您应该添加一个输入事件。它可以在移动设备和计算机设备上使用。