javascript - 如何在 <input type ="number"> 中移动插入符号?

标签 javascript jquery html

因此,当单击 input 时,我试图让插入符号移动。当 input 类型为 text 时,我发现的代码有效。但是当你将它设置为 number - 它不起作用。另外,我如何在不在参数中声明值(即 55)的情况下传递长度?

HTML

<input type="number" name="cost" value="0.00" />

JavaScript

$.fn.setCursorPosition = function (pos) {
    this.each(function (index, elem) {
        if (elem.setSelectionRange) {
            elem.setSelectionRange(pos, pos);
        } else if (elem.createTextRange) {
            var range = elem.createTextRange();
            range.collapse(true);
            range.moveEnd('character', pos);
            range.moveStart('character', pos);
            range.select();
        }
    });
    return this;
};

$('input[name=cost]').click(function() {
    $('input[name=cost]').setCursorPosition(55);
});


编辑:

做了一些挖掘,发现 chrome 不允许你用 number 来做这个......有没有人知道一个跨浏览器的工作并且不需要将类型切换到 >文本?

编辑 2:
好吧,经过大量搜索后,似乎没有解决方法可以使它与 number 类型一起使用。我不明白。为什么浏览器厂商要这么做?我发誓我们应该开始让所有元素都变成伪元素,只是为了激怒他们。尤其是谷歌,那会对其宝贵的小搜索算法造成严重破坏

最佳答案

尝试通过在按下键时将输入的 type 属性更改为 text 并在 keyup 时返回到 number 来解决这个问题。

有点hacky,但会解决问题。

关于javascript - 如何在 &lt;input type ="number"> 中移动插入符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017450/

相关文章:

javascript - 如何使网站的背景闪烁?

javascript - 如何在JavaScript中检查两个对象是否有很少的匹配数据

javascript - 我的错误在哪里 - Javascript/jQuery 中选择框的日期计算器?

HTML 元素 - 不同类型,但共享相同的类名 - 行为异常

java - Wicket 口:后退按钮 上一页

c# - 如果具有 runat ="server"属性,如何使 div 可拖动

javascript - 使用 jQuery 查看输入是否有空格

javascript - KnockoutJs - 计算数据库评级

javascript - 设置滚动条到特定的div

jquery - 将新行添加到表中仅复制下拉列表