jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQueryUI自动完成 – 当没有返回结果大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道当使用 jQueryUI autocomplete时从服务器返回空结果时,如何捕获并添加自定义处理程序.

在这一点上似乎有一些问题涉及到各种jQuery插件(例如jQuery autocomplete display “No data” error message when results empty),但我想知道是否有更好/更简单的方法来实现与jQueryUI自动完成相同的方式.

在我看来,这是一个常见的用例,我想也许jQueryUI已经改进了jQuery自动完成功能,通过添加干净地处理这种情况的能力.然而,我没有找到这样的功能的文档,在我之前,我想抛出一些感觉,以防其他人看到这个.

然可能不是特别有影响力,我可以让服务器返回任何东西 – 例如http 204:没有内容到200 / JSON空列表 – 无论什么使得最容易捕获jQueryUI的自动完成中的结果.

我的第一个想法是通过两个参数传递回调,即一个请求对象和一个响应回调来处理代码,根据文档:

当响应回调没有收到数据时,插入返回一个特殊的一行对象数组,它具有一个标签和指示符,表示没有数据(所以SELEct / focus将其识别为没有返回数据的指示符).

这似乎过于复杂.我更喜欢使用一个代码http:// …”,并且在某处指示没有返回任何数据的回调.

谢谢你的阅读.

布赖

编辑:

这是一个我创建的一个包装函数解决这个问题,基于@ ThiefMaster的保证,它是正确的方法

function autocomplete(input,source_url,on_SELEct,on_focus,default_data) {
        /* Autocompletion for an input field
         * input: the field for autocompleTing
         * source_url: the JSON url for getTing data
         * on_SELEct: function (event,ui) - when someone SELEcts an element
         * on_focus: function (event,ui) - when someone focuses an element
         * default_data: function () returning default data; alternatively is the
         *               default dataset e.g. {'label':'X','value':'Y'}
         */

        $(input).autocomplete({
            source: function (request,responsE) {
                $.ajax({
                    url: source_url,dataType: "json",data: request,success: function (data) {
                        if (!data.length) { // expect [] or ""
                            var def_data = typeof(default_data) == 'function' ?
                                default_data() : default_data;
                            response(def_data);
                        } else {
                            response(data);
                        }
                    }
                });
            },minLength: 3,SELEct: on_SELEct,focus: on_focus,});
    }

解决方法

覆盖自动完成对象的响应功能可能会起作用,但这是monkeypatching.使用响应回调很可能是实现您想要的最简单的方法.

大佬总结

以上是大佬教程为你收集整理的jQueryUI自动完成 – 当没有返回结果全部内容,希望文章能够帮你解决jQueryUI自动完成 – 当没有返回结果所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。