实现 jquery UI 自动完成以在您键入“@”时显示建议

2024-03-09

我正在使用 jquery UI AutoComplete 来允许用户使用 @mentions 来标记朋友。默认情况下,当您将焦点放在文本框上时,就会出现自动完成建议。如何让建议仅在您输入“@”时出现?这是我到目前为止的代码:

var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
            ];
$("#tags").autocomplete({
    source: availableTags,
    minLength: 0
});

您可以通过向source自动完成选项:

var availableTags = [ /* Snip */];

function split(val) {
    return val.split(/@\s*/);
}

function extractLast(term) {
    return split(term).pop();
}

$("#tags")
// don't navigate away from the field on tab when selecting an item
.bind("keydown", function(event) {
    if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
        event.preventDefault();
    }
}).autocomplete({
    minLength: 0,
    source: function(request, response) {
        var term = request.term,
            results = [];

        /* If the user typed an "@": */
        if (term.indexOf("@") >= 0) {
            term = extractLast(request.term);
            /* If they've typed anything after the "@": */
            if (term.length > 0) {
                results = $.ui.autocomplete.filter(
                availableTags, term);
            /* Otherwise, tell them to start typing! */
            } else {
                results = ['Start typing...'];
            }
        }
        /* Call the callback with the results: */
        response(results);
    },
    focus: function() {
        // prevent value inserted on focus
        return false;
    },
    select: function(event, ui) {
        var terms = split(this.value);
        // remove the current input
        terms.pop();
        // add the selected item
        terms.push(ui.item.value);
        // add placeholder to get the comma-and-space at the end
        terms.push("");
        this.value = terms.join("");
        return false;
    }
});

这是一个工作示例:http://jsfiddle.net/BfAtM/2/ http://jsfiddle.net/BfAtM/2/

请注意,这是almost相同这个演示 http://jqueryui.com/demos/autocomplete/#multiple,但要求用户键入“@”的情况除外。该代码位于source选项参数。

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现 jquery UI 自动完成以在您键入“@”时显示建议 的相关文章

随机推荐

  • Eclipse Luna 快速搜索命令

    The Quick Search Command seems to have disappeared in Luna In Keplar this was bound by default to Ctrl Shift L In Luna C
  • 如何增加在 Windows 7 下运行的 Apache 的堆栈大小?

    我认为在 Windows 7 下的 Apache 服务器上运行 cakePHP 应用程序时出现堆栈溢出 此问题在 Windows 平台上更常见 因为 Apache 的默认堆栈大小较小 Windows 上的默认堆栈大小为 1 MB 而 Uni
  • 检查标记是否在圆半径内

    我想知道给定的标记是否在圆半径内 在 javascript 中 我可以做类似的事情 google maps geometry spherical computeDistanceBetween latLngCircleCenter latLn
  • Mercurial 克隆问题

    我正在使用 Mercurial 并且在本地克隆了一个存储库hg push 我得到这个 abort cannot lock static http repository 这是什么意思 为什么它不能锁定 static http 存储库 文件夹权
  • 从 pandas 数据框的列或行获取列表?

    我有一个数据框df从 Excel 文档导入 如下所示 cluster load date budget actual fixed price A 1 1 2014 1000 4000 Y A 2 1 2014 12000 10000 Y A
  • 为什么编译器这么蠢?

    我总是想知道为什么编译器无法弄清楚人眼显而易见的简单事物 他们做了很多简单的优化 但从来没有做过哪怕一点点复杂的优化 例如 此代码在我的计算机上大约需要 6 秒才能打印值零 使用 java 1 6 int x 0 for int i 0 i
  • mysql中如何将varbinary转换为char/varchar

    我有一个 varbinary 字段 它已经被填充了 现在我如何将 varbinary 转换为 varchar 以便我可以将字段中的数据用于其他目的 我使用MySQL版本5 10 迟到的答复 您可以使用 CAST 或 CONVERT 因此 C
  • 如何创建一个字母滚动条显示android中的所有字母?

    My purpose is to obtain something like that 但我能找到的唯一例子是这样的列表 android 列表视图快速滚动与字母表就像 iPhone 联系人活动 https stackoverflow com
  • 如何在绝对定位的父div内部垂直居中div

    我试图将蓝色容器放在粉色容器中间 但是似乎vertical align middle 在这种情况下不起作用 div style display block div style text align left height 56px back
  • 如何删除 ggplot geom_bar 图中的选择标签并将这些标签居中?

    是否可以从 geom bar ggplot geom text 中删除重复值的某些 特定标签并将该值集中在图 条上 My data structure list prey name c Amphipod Byths Chiro Adult
  • LNK2022:元数据操作失败:重复类型中的字段声明不一致

    我在编译 C NET 项目时遇到问题 我读过了 LNK2022 元数据操作失败 让我发疯 https stackoverflow com questions 810827 lnk2022 metadata operation failed
  • 在集合页面 Shopify 中显示变体选项

    我知道这个问题在互联网上被问了数百万次 但似乎每个人都希望有一个有自己特色的解决方案 我找不到我真正需要的东西 因此 我使用此代码来显示我的收藏中的变体 然后添加到购物车
  • 如何以编程方式获取 Windows 进程的线程计数?

    我想通过 C C 计算当前 Windows 进程的本机线程数 我看到有一个相关问题 https stackoverflow com questions 2744295 how to find the active thread count带
  • 在张量流中调整 3D 数据的大小,如 tf.image.resize_images

    我需要调整一些 3D 数据的大小 例如tf image resize images二维数据的方法 我想我可以尝试跑步tf image resize images在它上循环并交换轴 但我认为一定有一种更简单的方法 简单的最近邻应该没问题 有任
  • 有没有办法不将人们重定向到 Mailchimp 的“谢谢”页面?

    我在 Mailchimp 网站上看到 当用户订阅您的邮件列表时 您可以将用户重定向到自定义感谢页面 但这并不是我想要做的 当用户订阅我的邮件列表时 我想隐藏表单并直接在我的页面上将其替换为感谢信 而不进行任何重定向 有没有办法做到这一点 您
  • Notepad++ 的整洁 CSS

    是否有某种 CSS 整洁可用于 Notepad 我已经尝试了 TEXTFX 中似乎每个菜单项 但似乎没有一个能做到这一点 我习惯使用 PSPAD 只需选择 CSS 并单击 重新格式化为结构化 CSS EDIT在问这个问题很长时间后发现了一个
  • 如何在NextJs中为Material UI的媒体查询实现SSR?

    我无法遵循文档 https material ui com components use media query server side rendering实现 Material UI 的媒体查询 因为它是为普通的 React 应用程序指定
  • 使用 PowerShell 重命名 FTP 上的文件

    有没有办法重命名 FTP 目录中的文件 我正在将实时图像从计算机流式传输到 FTP 但问题是当它将图像上传到 FTP 时 它会立即替换文件 我想先上传临时名称的图像 然后重命名为 live jpg 这就像缓存文件上传一样 while tru
  • ASP.NET MVC 中的 jQuery 与 MicrosoftAjax

    在什么情况下您会在 ASP NET MVC 应用程序中使用 MicrosoftAjax 而不是 jQuery 根据斯科特 凯特在此播客中的说法Scott Cate 的面向对象 AJAX http www hanselminutes com
  • 实现 jquery UI 自动完成以在您键入“@”时显示建议

    我正在使用 jquery UI AutoComplete 来允许用户使用 mentions 来标记朋友 默认情况下 当您将焦点放在文本框上时 就会出现自动完成建议 如何让建议仅在您输入 时出现 这是我到目前为止的代码 var availab