这个问题似乎发生在基于webkit的浏览器(chrome和safari)中。不是火狐。
将某些输入字段限制为仅数字和:
后,我无法再选择文本或使用箭头键将光标移动到左侧。输入被取消选择或在光标的情况下:它被移动到输入的末尾。 (我可以通过用鼠标点击那里将光标放在字符串中的某个位置)
使用的代码:
$('#from, #to, #rate, #break').keyup(function () {
this.value = this.value.replace(/[^0-9:\.]/g,'');
});
小提琴中的例子:http://jsfiddle.net/PaulvdDool/EKYBr/
我做错了什么吗?这是一个消极的副作用我无能为力吗?或者有没有办法使文本选择和光标移动成为可能?
答案 0 :(得分:1)
当您覆盖该值时,插入符会自动结束输入。
您需要做的是仅在需要时覆盖该值。例如:
$('#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,'');
}
});
<强> Demo 强>
答案 1 :(得分:0)
您每次都会覆盖该值。你最好得到钥匙,不要让用户输入它。
$('#time').keydown(function (event) {
// 48-56 => 0-9 | 58 = ":"
if((event.keyCode < 48 || event.keyCode > 56) or event.keyCode != 58)
{
event.preventDefault();
}
});
选中此fiddle