2013-05-13 143 views
1

我有项目在我的HTMLJQuery的选择填充

一个输入文字(公司)字段和选择(Company_List)

,当用户在文本字段我想jQuery来使用/ home/SearchSynonym /获取名称和选择显示它(SearchSynonym取值用户类型,并做了通配符搜索和返回ID和名称)

能有人帮助,是TI全新的jQuery

的Leb

回答

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 =“公司”的标签decleration,你的“Company_List”下拉承担id该会工作=” Company_List“,并且服务器端接收参数”query“来提取记录。

+0

是的SearchSynonym返回JSON,所以如果我在用户开始在公司文本输入中输入时添加代码选择将填充从SearchSynonym查询返回? – LeBlues 2013-05-13 09:03:00

+0

是的,它应该。 – 2013-05-13 10:17:55

+0

我该如何推迟搜索?例如,如果使用类型快速我想延迟大约2秒? – LeBlues 2013-05-13 10:28:53

1

您可以使用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秒延迟。

+0

setTimeout dos似乎不想提交查询,我将$(“#company”)更改为$(“#company”)。没有超时它可以工作 – LeBlues 2013-05-13 10:51:27

+0

Uncaught TypeError:无法调用未定义的方法'toLowerCase'jquery-2.0.0.js:3907 jQuery.fn.extend.val jquery-2.0.0.js:3907 (匿名函数) – LeBlues 2013-05-13 11:00:50

+0

$。 getJSON(“/ Home/SearchSynonym /”,{query:$(“#company”).val()},function(response) – LeBlues 2013-05-13 14:32:28