因此,当单击 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 - 如何在 <input type ="number"> 中移动插入符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017450/