javascript - 在文本区域中键入后检测光标之前的字符

标签 javascript jquery

我正在尝试实现标记,就像 facebook 对 @friendname 所做的那样。我有一个文本区域,我想检测用户何时输入@。如何使用 keyup 监听器执行此操作?是否可以使用 keyup 获取输入的文本?这就是我现在拥有的

$("#recommendTextArea").keyup(function () {
        var content = $(this).val(); //content Box Data
        var go = content.match(start); //content Matching @
        var name = content.match(word); //content Matching @friendname

        console.log(content[content.length-1]);
        //If @ available
        if(go.length > 0)
        {
            //if @abc avalable
            if(name.length > 0)
            {
               //do something here
            }
        }
    });

最重要的是我需要的是用户刚刚输入的“@”的索引。

最佳答案

LINK

      (function ($, undefined) {
    $.fn.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);

$("#recommendTextArea").on('keypress', function(e){
    var key = String.fromCharCode(e.which);
    if(key === '*') {
        var position = $(this).getCursorPosition();
        alert(position); // It is the position
        alert($(this).val()); // This is the value 
    } 
});​

我做了一些更改HERE .

关于javascript - 在文本区域中键入后检测光标之前的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564259/

相关文章:

javascript - 确保 ajax 函数在第二个非 ajax 函数触发之前完成

javascript - JavaScript 中的比较运算符是否有类型安全的等价物?

javascript - 为什么 RTCPeerConnectionicegatheringstatechange 不起作用?

javascript - Jquery JScrollPane - 设置滚动速度/灵敏度

jquery - json 对象中的撇号用于添加斜杠

javascript - 正则表达式 - 从第二次出现到倒数第二次出现

javascript - jQuery 只绑定(bind)到 keyup,而不是焦点

javascript - PhantomJS 与 WebDriver

javascript - 如何使用 jQuery 和 JavaScript 防止文本字段失去焦点?

javascript - 激活阈值时 JQuery Flot 出现问题