【问题标题】:can't select text after making input only numeric仅输入数字后无法选择文本
【发布时间】:2013-07-19 13:16:05
【问题描述】:

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

在将某些输入字段限制为仅数字和: 后,我不再能够选择文本或使用箭头键向左移动光标。输入被取消选择或在光标的情况下:它被移动到输入的末尾。 (我可以通过用鼠标单击将光标放在字符串中的某个位置)

使用的代码:

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

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

我做错了吗?这是我无能为力的负面影响吗?或者有没有办法让文本选择和光标移动成为可能?

【问题讨论】:

  • 您使用的是什么浏览器和版本?我对 Firefox 没有任何问题。
  • 哎呀忘了说它只在 Chrome 上。

标签: jquery html constraints numeric


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    查看fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多