输入数字后才能选择文本

这个问题似乎发生在基于webkit的浏览器(chrome和safari)中。 不是Firefox。

在将某些输入字段限制为只有数字和a之后:我不再能够选择文本或使用箭头键将光标移动到左侧。 输入被取消选择或者在光标的情况下:它被移动到输入的末尾。 (我可以将光标放在字符串的某处,方法是用鼠标单击它)

使用的代码:

$('#from, #to, #rate, #break').keyup(function () { 
    this.value = this.value.replace(/[^0-9:.]/g,'');
});

小提琴中的示例:http://jsfiddle.net/PaulvdDool/EKYBr/

我做错什么了吗? 这是一种消极的副作用,我无能为力? 或者有没有办法让文本选择和光标移动成为可能?


当您覆盖该值时,脱字符会自动转到输入的末尾。

只有在需要时,您需要做的就是覆盖该值。 即类似于:

$('#from, #to, #rate, #break').keyup(function () { 
    switch(e.which) {
        case 37:
        case 38:     
        case 39:
        case 40: break;
        default: this.value = this.value.replace(/[^0-9:.]/g,'');
    }
});

演示


您每次覆盖该值。 你最好拿到钥匙,不要让用户输入。

$('#time').keydown(function (event) {
        // 48-56 => 0-9 | 58 = ":"
        if((event.keyCode < 48 || event.keyCode > 56) or event.keyCode != 58)
        {
            event.preventDefault();
        }
});

检查这个小提琴

链接地址: http://www.djcxy.com/p/68451.html

上一篇: can't select text after making input only numeric

下一篇: navigate form fields and edit text with the arrow keys