jQuery:移动设备的keyup事件

时间:2016-08-17 06:31:48

标签: javascript jquery mobile click keyup

我有一些问题要在我的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,该功能就会立即开启。反正有没有让它适用于移动设备?

4 个答案:

答案 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)

您应该添加一个输入事件。它可以在移动设备和计算机设备上使用。