如何知道闪烁的管道字符在字符串中的哪个位置?

时间:2014-10-01 09:15:56

标签: jquery input keyevent indexof arrow-keys

我想知道是否有可能知道按键时输入值的位置。

说我有一个文本字段。

<input id="name" type="text">

如果只有当它们位于字符串的末尾时才按下右箭头键我想要的东西,如果按下左箭头键,如果它们位于字符串的开头,我想要其他东西输入值。我想能够做到这样的事情:

$("#name").keyup( function(e) {
    if( e.which === 37 ) { // left
         if( isAtBeginningOfInputValue ) {
             // Do something
         }
    } else if( e.which === 39 ) { // right
         if( isAtEndOfInputValue ) {
             // Do something else
         }
    }
});

这可能吗?

1 个答案:

答案 0 :(得分:0)

这个闪烁的正确术语是caret

这里有textarea-elements

的get函数
function GetCaretPosition (ctrl) {

    var CaretPos = 0;  
    // IE Support

    if (document.selection) {

    ctrl.focus ();

    var Sel = document.selection.createRange ();

    Sel.moveStart ('character', -ctrl.value.length);

    CaretPos = Sel.text.length;

    }

    // Firefox support

    else if (ctrl.selectionStart || ctrl.selectionStart == '0')

    CaretPos = ctrl.selectionStart;

    return (CaretPos);

}