keypress vs keyup crossbrowser IPAD

时间:2014-01-24 18:57:04

标签: javascript jquery

当我输入一个字符时,我尝试将光标从一个输入移动到另一个输入。

HTML:

<div class="div-word">
   R
   <input class="input-letter" type="text" maxlength="1"/>
   V
   <input class="input-letter" type="text" maxlength="1"/>
   È
   <input class="input-letter" type="text" maxlength="1"/>
   E

JS:

$('.input-letter').on('keypress', function (e){
    $(this).next('.input-letter').focus();  
});

首先,我使用事件“keyup”但是在Ipad上没有检测到事件,所以我使用了“keypress”。问题是IE会在插入字符之前触发事件,并且字符将插入到下一个输入中。

所以我尝试了一个不那么好的修复:

$('.input-letter').on('keypress', function (e){
    e.preventDefault();
    var code = e.keyCode || e.which;
    $(this).val(String.fromCharCode(code));
    $(this).next('.input-letter').focus(); 
});

这项工作,但我还需要在每个输入上捕获“更改”事件,并且preventDefault取消了它。

任何想法?

FIDDLE:http://jsfiddle.net/9eU4E/

0 个答案:

没有答案