如何在 jQuery UI 自动完成中实现“mustMatch”和“selectFirst”?

2023-12-01

我最近从 制作的插件中迁移了一些自动完成插件贝斯斯坦斯 to the jQuery UI 自动完成.

如何仅使用回调和其他选项来实现“mustMatch”和“selectFirst”而不修改核心自动完成代码本身?


我想我解决了这两个功能......

为了让事情变得更容易,我使用了一个通用的自定义选择器:

$.expr[':'].textEquals = function (a, i, m) {
    return $(a).text().match("^" + m[3] + "$");
};

其余代码:

$(function () {
    $("#tags").autocomplete({
        source: '/get_my_data/',
        change: function (event, ui) {
            //if the value of the textbox does not match a suggestion, clear its value
            if ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0) {
                $(this).val('');
            }
        }
    }).live('keydown', function (e) {
        var keyCode = e.keyCode || e.which;
        //if TAB or RETURN is pressed and the text in the textbox does not match a suggestion, set the value of the textbox to the text of the first suggestion
        if((keyCode == 9 || keyCode == 13) && ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0)) {
            $(this).val($(".ui-autocomplete li:visible:first").text());
        }
    });
});

如果您的任何自动完成建议包含正则表达式使用的任何“特殊”字符,则必须在自定义选择器中的 m[3] 内转义这些字符:

function escape_regexp(text) {
  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}

并更改自定义选择器:

$.expr[':'].textEquals = function (a, i, m) {
  return $(a).text().match("^" + escape_regexp(m[3]) + "$");
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 jQuery UI 自动完成中实现“mustMatch”和“selectFirst”? 的相关文章

  • 仅在首页加载时使用 cookie 加载 colorbox

    我尝试了来自网络的参考代码 仅在页面加载时加载特定元素一次 这是示例代码
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • Rails3/will_paginate/Ajax - 下一个/上一个链接无法正常工作(这是一个错误吗?)

    我正在遵循 使用ajax分页 http railscasts com episodes 174 pagination with ajax railscast 用于我的 Rails 3 应用程序 一切似乎都运行良好 除了上一个和下一个链接根本
  • JavaScript / jQuery 中的范围[重复]

    这个问题在这里已经有答案了 显然我写了太多的 CoffeeScript 因为我现在意识到我对纯 JS 中的作用域没有基本的了解 玩了一段时间后 我无法弄清楚以下问题 document ready function var myUrl htt
  • 正则表达式以任何顺序匹配查询中的所有单词

    我正在尝试为一个项目构建一个搜索功能 该功能根据用户搜索输入以及它是否与针对项目列出的关键字匹配来缩小项目范围 为此 我将项目关键字保存在data属性并使用 RegExp 模式将查询与这些关键字进行匹配 我目前正在使用这个表达式 我知道它不
  • Prototype 和 jQuery 一起?

    我注意到我使用的某个脚本依赖于原型 Lightbox 2 它会与 jQuery 在同一页面上一起工作吗 有没有办法确保它们不发生冲突 你可以 但你需要采取特殊步骤 http docs jquery com Using jQuery with
  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 如何同步两个文本框表单值?

    大家好 我是 jQuery 新手 假设我有两个 HTML 文本框 如何才能实现这样的情况 如果我在文本框 A 中写入 则相同的值会转到文本框 B 如果我在 B 中写入 则相同的值会转到 A 与删除文本相同 在 jQuery 中如何做到这一点
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • jQuery 可以在用户输入数字时添加逗号吗?

    当用户输入数字时 如何动态添加逗号 有没有一个好的数字格式化程序可以提供帮助 我必须稍后添加这些数字 所以我最终必须删除一行中的逗号 但屏幕需要显示逗号以提高可读性 运行代码片段以查看其工作情况 input number keyup fun
  • 如何以编程方式处理 JqGrid 事件?

    我正在使用JqG rid 的 ASP NET 包装器 http www trirand net demoaspnet aspx 我想以编程方式连接一些网格的处理程序events http www trirand com jqgridwiki
  • jquery.validate 中是否有一个函数可以像重置表单一样重置单个字段?

    我想调用 jquery 函数来手动删除单个字段中的错误并重置错误标记 是否有一个函数可以执行此操作 类似于 resetForm 函数 您可以执行以下操作来验证单个字段 your field valid 也许它会对某人有所帮助 Thanks
  • jquery从变量中删除html元素

    我将 html 保存在变量中 var itinerary events today html 我有很多 html 和一个按钮我想删除 它的 ID 为 myButton 如何从变量中保存的 html 中删除它 我建议这种方法 var itin
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • 我可以使用 jQuery 打开下拉列表吗

    对于 HTML 中的下拉列表
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 在 ASP.NET Core MVC 中访问从视图到控制器的隐藏值

    我需要帮助使用 jQuery 从 ASP NET Core razor 视图页面传递隐藏控件值 jQuery 用于获取动态控件选定的值 section scripts

随机推荐

  • 如何在字符串中包含尚未定义的变量? PHP

    为了执行更少的数据库查询和代码的清晰性 我想在字符串中包含一个尚未定义的变量 稍后在页面中 将声明变量并打印和评估字符串 我该怎么做呢 str This variable is delicious array array Apple Pin
  • 与 Java 7 相比,运行相同递归代码的相同线程在 Java 8 中似乎消耗更多的堆栈内存

    我在 stackoverflow 网站中询问有关 java堆栈溢出 的问题 对特定输入进行一些递归函数调用的特定线程运行良好Oracle Java 7 64 位 对于已配置的堆栈大小 228k Xss228k 但是 同一线程对同一输入运行相
  • 从不同表中减去两个字段

    我的查询是如何从 SQL 中的不同表中减去两个值 例如 我想要一列减去用户的空闲假期天数 这些天数必须是您在申请中要求的天数与您每年休假的天数之间的差值 我有两张桌子 sec users具有以下字段的表 pk user login dias
  • 如何使用 Google Apps 脚本代码创建草稿电子邮件(来自 985)?

    In 第985期 评论 29 中一位名为 yurec 可能 的开发人员提供了一些代码 用于在 Google Apps 脚本中创建草稿 文本 电子邮件 其他一些人感谢他所做的出色工作 并说它已经过测试并且有效 我对如何使用它以及代码的哪些部分
  • Python:通过迭代列表列表将项目附加到列表

    我是一个从 C 过渡到的 Python 新手 我基本上正在尝试实现与 C 中的数组指针数组等效的逻辑 我想通过迭代这些列表的列表来将一个项目附加到一堆列表的末尾 我有以下代码 data 10 20 30 list1 list2 list3
  • Swift - 如何确定 iOS 应用程序的最佳“部署目标”

    在 Xcode 上 您可以自行决定 部署目标 但您可能会选择太旧的版本来稳定运行应用程序 因为您的代码中的某些方法已被更高版本的 iOS 支持 例如 选择部署目标 8 0 但当您在 iOS 版本 8 0 的设备上运行应用程序时 应用程序崩溃
  • 为什么使用 Float(arc4random()) / 0xFFFFFFFF 而不是 drand()

    我是 Swift 新手 刚刚在教程中看到这段代码用于生成随机角度 func random gt CGFloat return CGFloat Float arc4random 0xFFFFFFFF func random min CGFlo
  • c# Clipboard返回null,但不能为空

    我正在尝试获取单击时生成并粘贴到剪贴板中的链接 我尝试了我能找到的一切 但我总是收到 null 即使当我将链接手动粘贴到记事本中时 我也明白了 我对每个定义的数据格式尝试了此代码 但所有内容都返回 null string clipboard
  • 如何交换两张卡而不改变其他卡的位置

    I have images in grid form something like this 我很清楚react dnd 它使用悬停来获取位置并相应地交换 我想要的是 Swap 1 with 4 and 4 with 1 怎么了 移动图像
  • 在 render 中调用 setState 是不可避免的

    React 文档指出render函数应该是pure这意味着它不应该使用this setState但是 我相信当状态依赖于 远程 时 即 ajax 调用的结果 唯一的解决方案是setState 里面一个render功能 就我而言 我们的用户应
  • 采用材料设计的自定义搜索栏

    我在布局中有一个搜索栏 用于自定义对话框首选项 我更改了 styles xml 以使用新的材质设计 它之所以有效 是因为它更改了我的设置的文本和复选框 但我无法将颜色应用到我的搜索栏 仅当我在活动中放置搜索栏时它才有效 这意味着我必须在自定
  • 将每小时的动物园时间序列输入函数 stl()

    在你问之前 是的 我需要显示这么多数据 stl 需要两个周期的数据 在本例中 一个周期有 24 个值 因此 stl 至少需要 48 个值 另外 来自 stl 帮助 这应该是 ts 类的对象 其频率大于 1 我正在升级一些旧的计算 以便我的数
  • 如何在 Angular 中将输入值作为参数传递给路由器

    我相信我想做的事情是微不足道的 但我尝试了很多不同的事情 但无法弄清楚 我有两个组件 SearchComponent and DetailsComponent显示搜索结果 路线模块 const routes Routes path comp
  • 后台工作进程还是线程?

    我有一个 Winform 应用程序 它在网格视图中列出了一批发票 用户选择批次并单击 生成发票 按钮 该过程大约需要 4 5 分钟 当它运行时 我将有一个选框进度条 并且想禁用所有按钮 我应该使用后台工作进程还是创建一个新线程来运行此任务
  • 使用具有特定标识的应用程序池运行 ASP.net 项目会产生“(403) Forbidden”

    尝试从 Visual Studio 启动 ASP net 项目时收到此错误消息 它不运行 Unable to start debugging on the web server The remote server returned an e
  • 检测android中启动了哪个应用程序

    如何检测用户在我的应用程序中启动了哪个应用程序 即当用户启动 Whatsapp 时 即使我的应用程序没有在前台或后台运行 我的应用程序也应该收到通知 远足信使通过无障碍服务实现了相同的功能 我怎么解决这个问题 提前致谢 根据运行应用程序的
  • 为什么 Cocoa-Touch 类 ivars 具有前导下划线字符?

    这次会议有什么目的吗 有一些开发人员使用以下约定通过以下方法 隐藏 ivars interface private NSString myString property nonatomic retain NSString myString
  • 如何在 Unity 检查器中根据其他变量值隐藏变量

    我如何根据统一检查器中的其他变量值隐藏变量 基本上想象一下 如果我有一个名为 CanSprint 的布尔值和一个名为 SprintSpeed 的浮点数 那么我想这样做 以便当布尔值为真时 浮点数显示 但当布尔值为假时 浮点数隐藏 这只是为了
  • java.lang.IllegalStateException:尝试重新打开已经关闭的对象

    我试图弄清楚为什么我偶尔会收到 IllegalStateException 我找不到任何好的示例来展示如何使用线程加载列表来查询 SQLite 数据库 我在下面包含了我的代码 大多数时候它工作正常 但偶尔我会收到 IllegalStateE
  • 如何在 jQuery UI 自动完成中实现“mustMatch”和“selectFirst”?

    我最近从 制作的插件中迁移了一些自动完成插件贝斯斯坦斯 to the jQuery UI 自动完成 如何仅使用回调和其他选项来实现 mustMatch 和 selectFirst 而不修改核心自动完成代码本身 我想我解决了这两个功能 为了让