javascript - Select2 从上次选择的选择框中检索无效结果

标签 javascript jquery jquery-select2

我目前遇到一个问题,我的 select2 插件有时会显示上次选择的选择框的结果。此外,有时当我第一次单击选择框或输入速度太快时,我也会得到 g.results is null。我的代码如下。

        window.currentField = ""; //current product field data
        window.currentCategory = "";   //current product category data

        //lets get some data from the hidden input for providing suggestions via ajax

        $(".suggestive-entry").live('click',function() {
            //alert("click called");
            //alert("test");

            window.currentField = $(this).siblings('input:hidden').attr('data-field'); //get the field attribute
           // alert(window.currentField);
            window.currentCategory = $(this).siblings('input:hidden').attr('data-category'); //get the category attribute
        });

        //formats select2 returned option
        function format(item) { return item.term; };

        //used for suggestive search fields
        $(".suggestive-entry").select2({
            createSearchChoice:function(term, data) { if ($(data).filter(function() { return this.term.localeCompare(term)===0; }).length===0) { return {id:term, term:term};} },
            initSelection : function (element, callback) {
                var data = {id: element.val(), term: element.val()};
                callback(data);
            },
            multiple: false,
            ajax: {
                url: "includes/ajax/map-fields.php",
                dataType: 'json',
                data: function (term, page) {
                    //alert("suggestive called");
                    return {
                        q: term,
                        field: window.currentField,
                        ptype: window.currentCategory
                    };
                },
                results: function (data, page) {
                    return { results: data };
                }
            },

            formatSelection: format,
            formatResult: format
        });

如有任何帮助,我们将不胜感激。

最佳答案

尝试为你的隐藏字段提供 id,做这样的事情

   data: function (term, page) {
        //alert("suggestive called");
        var data_field = $('#someId').attr('data-field');
        var data_category = $('#someId').attr('data-category');
        return {
                q: term,
                field: data_field,
                ptype: data_category
            };
    } 

关于javascript - Select2 从上次选择的选择框中检索无效结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522996/

相关文章:

php - 调用成员函数 ERROR PHP

javascript - 仅当我按 F12 调出控制台时,表单才能在 Internet Explorer 中工作

javascript - 如何在不使用 try/catch 的情况下捕获错误或在运行时使用 try/catch 包装代码?

javascript - ASP.NET MVC 提交表单调用另一个提交表单的 javascript 函数

javascript - 让侧面内容始终 float 在中心?

javascript - jQuery 防止动画分区的跳跃

jquery - 单击时更改 select2 选项

javascript - Scrapy Splash 不尊重渲染 "wait"时间

javascript - 每次显示警报时都会增加 sessionStorage 值

javascript - 在 Select2 中按名称排序