所以我在点击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
执行此操作...是否有人知道围绕该浏览器的工作并且不需要切换类型到text
?
编辑2:
经过大量搜索后,似乎没有解决方法可以使用number
类型。我不明白。为什么浏览器制造商会这样做?我发誓我们应该开始制作所有元素伪元素,只是为了惹恼他们。特别是谷歌,这会对那里的搜索算法造成严重破坏
答案 0 :(得分:1)
尝试在keydown上将输入的type
属性更改为text
,然后在keyup上更改为number
。
有点hacky,但会解决问题。