创建一个类似Facebook状态更新的自动填充程序

时间:2010-05-30 18:16:52

标签: javascript jquery autocomplete

我正在尝试创建一个像Facebook状态更新一样具有满足感的div。那么我的意思是当用户写完@。

时我想显示一个自动完成框

你会怎么做?目前我只是在玩按键并检查键码是否为64.某种方式可行,但它不会验证alfa之前是否有空格,或者如果用户没有聚焦该框,则再次聚焦它。

有什么想法吗?或者你知道任何类似的插件吗?

TNX

1 个答案:

答案 0 :(得分:0)

我也许可以用按键来做。

但是我们需要检查光标位置以检查'@'之前的字符。

这是我在http://javascript.nwbox.com/cursor_position/cursor.js

中使用的功能
function getSelectionStart(o) {
  if (o.createTextRange) {
    var r = document.selection.createRange().duplicate();
    r.moveEnd('character', o.value.length); 
    if (r.text == '') return o.value.length
      return o.value.lastIndexOf(r.text);
    } else { 
      return o.selectionStart;
    }
}

然后用jquery我写了这个keypress回调函数:

txt.keypress(function(event) {
    if (event.which == 64) {
        var index = getSelectionStart(this)
        var prevChar = txt.val().substring(index - 1, index);
        // now you can check if the previous char was a space
    }
});