javascript - 过滤自动完成数据源

标签 javascript jquery html autocomplete

我的场景是我从数据库中获取一些值作为 autocomplete,如 V001/Vendor 1, V002/Vendor 2, .. ...

所以我想要的是,如果用户已经在第一个文本框中选择了 V001/Vendor 1,那么他不应该能够在第二个文本框中选择相同的 V001/Vendor 2 .这是它的样子

Vendor

此外,请查看我在 jquery 中的自动完成代码

autocompleteOptions = {
    minLength: 3,
    source: function (request, response) {
        var term = $.trim(request.term);
        $.ajax({
            //receives json array answer from the url
            url: AppConfig.PrefixURL + "App/GetVendorList",
            data: { "VENDORNAME": "" + extractLast(term) + "" },
            dataType: "json",
            type: "POST",
            success: function (data) {
                var datalist = JSON.parse(data);
                response($.map(datalist, function (element, index) {
                    return {
                        label: element.VENDORNAME,
                        value: element.VENDORCODE + "/" + element.VENDORNAME
                    };
                }));
            },
            error: function () {
                // added an error handler
                response($.ui.autocomplete.filter(
                    ["VENDORNAME", "VENDORCODE"]
                    , extractLast(term)));
            }
        });
    },
    select: function (e, u) {
        if (u.item.value == "") {
            return false;
        }
    },
    change: function (event, ui) {
        $(this).val((ui.item ? ui.item.value : ""));        
        if ($(this).val().trim() == "" || $(this).val() == null || $(this).val() == "null") {
            var name = $(this).attr('id');
            var id = parseInt(name.substr(13, name.length));
            $('#spFromDate' + id).val('');
            $('#spToDate' + id).val('');
        }
    },

};

$("#txtVendorName1").autocomplete(autocompleteOptions);

请建议如何实现这一目标。

最佳答案

如果 textbox2 与 textbox1 具有相同的值,您可以从自动完成建议中清除选择选项的第二个文本框值,这样用户就无法再次选择相同的选项。

试试这个类型的代码:

$(document).on('change','#textbox2',function(){
   var value1=$('#textbox1').val();
   var value2=$('#textbox2').val();
   if(value2==value1){
    $('#textbox2').val("");
   }
});

关于javascript - 过滤自动完成数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017877/

相关文章:

javascript - 通过对象进行过滤

jquery - 在 jQuery UI 自动完成中添加自定义属性

html - CSS- 改变搜索框的宽度

javascript - jQuery 不能在外部 JavaScript 中工作

html - 表头中的 Bootstrap 工具提示?

javascript - ReactJS 和 jest : how to use a mock value for element. offsetWidth?

javascript - 谷歌单点登录 : Sign Out Error (Website)

javascript - ui路由器与单页应用程序的路由

javascript - 设置默认数据绑定(bind)选项的值

javascript - 使用CasperJS将法语字符写入CSV文件,但显示不正确