【问题标题】:JQuery Select PopulateJQuery 选择填充
【发布时间】:2013-05-07 05:18:12
【问题描述】:

我必须在我的 html 上添加项目

一个输入文本(公司)字段和一个选择(公司列表)

当用户在文本字段中键入时,我希望 jQuery 使用 /Home/SearchSynonym/ 来获取名称并将其显示在选择中(SearchSynonym 采用值用户类型并进行通配符搜索并返回 ID 和 NAME)

有人可以帮忙吗,我是 jQuery 新手

勒布

【问题讨论】:

    标签: ajax jquery jquery-autocomplete autofill


    【解决方案1】:

    您需要澄清 SearchSynonym 以哪种格式返回 ID 和 NAME?是 JSON 格式的吗?如果是 JSON,请尝试以下操作:

    var companyList = $("#Company_List");
    
    $("#company").change( function(){
        $.getJSON("/Home/SearchSynonym/",{ query: $(this).val() }, function(response){
            var responseList = "";
            $.each(result, function(index, item){
                responseList += "<option value='" + item.id + "'>" + item.name + "</option>";
            });
            companyList.html(responseList);
        });
    });    
    

    如果您的“公司”文本字段在标签声明中包含 id="company",您的“公司列表”下拉列表在标签声明中包含 id="Company_List",并且您的服务器端收到参数“查询”,这将起作用" 用于提取记录。

    【讨论】:

    • 是的 SearchSynonym 返回 JSON,所以如果我在用户开始输入公司文本输入时添加代码,则 Select 将填充 SearchSynonym 查询的返回值?
    • 如何延迟搜索?例如,如果使用快速类型,我想延迟大约 2 秒?
    • 您可以使用 setTimeout。试试这个代码: var companyList = $("#Company_List"); $("#company").change( function(){ setTimeout( function() { $.getJSON("/Home/SearchSynonym/",{ query: $(this).val() }, function(response){ var responseList = ""; $.each(result, function(index, item){ responseList += ""; }); companyList.html(responseList); }); }, 2000); });
    【解决方案2】:

    您可以使用 setTimeout。试试这个:

    var companyList = $("#Company_List");
    
    $("#company").change( function(){
        setTimeout( function() {
            $.getJSON("/Home/SearchSynonym/",{ query: $(this).val() }, function(response){
                var responseList = "";
                $.each(result, function(index, item){
                    responseList += "<option value='" + item.id + "'>" + item.name + "</option>";
                });
                companyList.html(responseList);
            });
        }, 2000);    
    });
    

    值 2000 表示延迟 2 秒。

    【讨论】:

    • setTimeout 似乎不想提交查询,我将 $("#company").change 更改为 $("#company").keyup。没有超时它的工作原理
    • Uncaught TypeError: Cannot call method 'toLowerCase' of undefined jquery-2.0.0.js:3907 jQuery.fn.extend.val jquery-2.0.0.js:3907(匿名函数)跨度>
    • $.getJSON("/Home/SearchSynonym/",{ query: $("#company").val() }, function(response) 并且成功了
    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 2018-06-28
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多