Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将插入符号移入<;输入类型=";“数字”>;?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何将插入符号移入<;输入类型=";“数字”>;?

Javascript 如何将插入符号移入<;输入类型=";“数字”>;?,javascript,jquery,html,Javascript,Jquery,Html,因此,我试图在单击输入时移动插入符号。我找到的代码在输入类型为文本时工作。但是,当您将其设置为编号时,它不起作用。另外,如何让它在不在参数中声明值(即55)的情况下通过长度 HTML <input type="number" name="cost" value="0.00" /> 编辑: 进行了一些挖掘,发现chrome不允许您使用number。。。是否有人知道一种跨浏览器的变通方法,它不需要将类型切换到文本? 编辑2: 在大量搜索之后,似乎没有解决方法可以让它与typenumb

因此,我试图在单击
输入时移动插入符号。我找到的代码在
输入
类型为
文本
时工作。但是,当您将其设置为
编号
时,它不起作用。另外,如何让它在不在参数中声明值(即
55
)的情况下通过长度

HTML

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

编辑:

进行了一些挖掘,发现chrome不允许您使用
number
。。。是否有人知道一种跨浏览器的变通方法,它不需要将类型切换到
文本


编辑2:

在大量搜索之后,似乎没有解决方法可以让它与type
number
一起工作。我不明白。为什么浏览器制造商会这样做?我发誓我们应该开始让所有的元素都是假造的,只是为了让他们生气。尤其是谷歌,这将对宝贵的搜索算法造成严重破坏。试着通过将输入的
type
属性在按下键时更改为
text
,在按下键时更改为
number
,来解决这个问题


有点黑客,但会解决问题。

input.selectionStart=input.selectionEnd=input.value.length
这不是很有帮助,我遇到了一堆使用该方法的谷歌搜索,它们与数字不兼容,在chrome中也不一致。对不起,我没有意识到chrome不喜欢它。。。输入[type=number]对你有吸引力吗?事实上,它在表单上验证了自己的功能,并且在智能手机上显示数字触摸板,而不是全键盘。嗯,你可以使用attrib模式在文本输入上验证数字。不过,移动方面很重要。如果您希望选择的内容多于inc/dec按钮,那么仅为chrome桌面修改类型可能是值得的。您也可能无法使用带有数字输入的模式,所以您必须将其切换为。目前还没有其他解决办法……我相信在转换回类型编号时插入符号丢失了
$.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);
});