-1

我有一个输入框,里面选择了文本。

当我在选择区域内单击时,我想接收插入符号的位置。

我看到的唯一可能有用的属性是选择开始属性,但由于选定的输入框,它始终为 0。

如何接收点击的插入位置?

4

1 回答 1

0

您可以在文本框内单击时获得插入符号的位置,但由于所选文本不是 DOM 节点,因此您无法在所选部分上分配单击事件。如果您只想单击插入符号位置,这将对您有所帮助。

    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);
    }

$(document).ready(function(e) {
    $('.textBox').click(function(e) {
        alert(GetCaretPosition(this));
    });
});

检查http://jsfiddle.net/thvd5/

于 2013-01-06T14:59:06.140 回答