jQuery 自动完成 : if user writes down a match, 回调函数不会被调用

标签 jquery jquery-ui jquery-autocomplete

我的文本字段有自动完成 jQuery 功能,建议编程语言:

Java
C++
PHP

一旦用户点击建议,就会调用一个回调函数,该函数设置由 ajax 请求获取的语言的隐藏 ID。

问题是,如果用户手动写入语言名称(不单击自动完成),则不会调用此回调函数,因此不会设置隐藏 ID - 我必须搜索它按数据库中的名称。

有没有切实可行的方法来处理此类问题?

最佳答案

如果您使用本地数据源,这非常简单 - 只需查看用户的条目是否在源数组内即可:

$("#auto").autocomplete({
    source: availableTags,
    change: function(event, ui) {
        if (ui.item) {
            /* User selected an item. value is ui.item.value */
        } else {
            if ($.inArray(this.value, availableTags) >= 0) {
                /* User typed item in suggestion list. value is this.value. */
            } else {
                /* User typed something that wasn't in the suggestion list */
            }
        }
    }
});

示例: http://jsfiddle.net/andrewwhitaker/PNqkB/

您还可以使用 Scott González' autoSelect plugin (demo)。使用该插件的优点是它也应该处理远程源,而我的示例仅处理本地源。

这是一个使用远程数据源的 Scott 插件的示例:http://jsfiddle.net/ZEzMa/

关于jQuery 自动完成 : if user writes down a match, 回调函数不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556597/

相关文章:

javascript - 在一个页面的多个输入中实现 jQuery 自动完成

javascript - 在大型 Backbone js 应用程序中切换 View 时禁用事件监听器

php - 当输入类型为空时返回 false $this->form_validation->run() ="file"

Jquery 自动完成 : using tab to select first item and remain focus on search box

jquery - 工具提示 : exclude elements with a specific ID or class

php - 如何将从 PHP 文件接收到的 json 响应值显示为 jQuery 自动完成建议?

jquery - 设置用户格式和重定向用户(使用 jQuery UI 自动完成)

javascript - 如果 href 具有有效的 URL,则显示 .load-overlay

javascript - 用 jQuery 替换字符串中的字母字符和空格

javascript - 从 ContactsApp Service 获取联系人以使用 GAS 自动完成