Javascript 在向上键上获取光标位置

Javascript 在向上键上获取光标位置,javascript,jquery,Javascript,Jquery,我对javascript或jquery不是很有经验。我需要弄清楚用户的光标是否位于文本输入字段的最后一个位置,并且在向上键时maxlength为3。如果是,请将焦点切换到下一个字段。我在表单上看到了很多这样的功能,所以我认为每个人都可以理解我正在寻找的半通用功能。所涉及的输入字段不是text类型,而是tel类型 我试图在这里找到这个问题的答案,但我无法理解我所问的类似问题的任何答案,但不完全相同。例如,它提到selectionStart和selectionEnd,但我找不到真正解释它们的地方。在

我对javascript或jquery不是很有经验。我需要弄清楚用户的光标是否位于文本输入字段的最后一个位置,并且在向上键时maxlength为3。如果是,请将焦点切换到下一个字段。我在表单上看到了很多这样的功能,所以我认为每个人都可以理解我正在寻找的半通用功能。所涉及的输入字段不是text类型,而是tel类型

我试图在这里找到这个问题的答案,但我无法理解我所问的类似问题的任何答案,但不完全相同。例如,它提到selectionStart和selectionEnd,但我找不到真正解释它们的地方。在我看来,他们似乎涉及选定的文本,但这不是我想要的

我希望在用户键入时对此进行检查。下面是我试图看看是否可以得到正确的值,但它返回未定义的值

$("#phone1").keyup(function(){
    var phone = $("#phone1");
    alert(phone.selectionEnd);
}); 

对不起,如果我不明白其中的一些。如蒙协助,将不胜感激。谢谢。

这就是你要找的吗

(function ($, undefined) {
        $.phone1.getCursorPosition = function() {
            var el = $(this).get(0);
            var pos = 0;
            if('selectionStart' in el) {
                pos = el.selectionStart;
            } else if('selection' in document) {
                el.focus();
                var Sel = document.selection.createRange();
                var SelLength = document.selection.createRange().text.length;
                Sel.moveStart('character', -el.value.length);
                pos = Sel.text.length - SelLength;
            }
            return pos;
        }
    })(jQuery);

    $("#phone1").on('keypress', function(e){
        var key = String.fromCharCode(e.which);
        if(key === '*') {
            var position = $(this).getCursorPosition();
            console.log(position);
        } else {
            return false;
        }
    });​

字体:我认为非常相似。

基本上,您应该绑定的jquery事件是“change”事件,它将在每次发生更改时触发,如新输入或删除输入等

e、 g

在上面的代码中,该代码将把焦点转移到下一个输入上,而不考虑类型

$(this).next('input').focus();
HTML标记应如下所示:

<input type="tel" maxlength="4" id="telNo">
<input type="text" maxlength="4" id="text">

这是一把小提琴


如果有问题,请查看链接。。它和你的非常相似。
<input type="tel" maxlength="4" id="telNo">
<input type="text" maxlength="4" id="text">