Jquery自动完成-未从functon获取返回值
我确信我的编码有很多错误 然而,除了自动完成之外,一切都正常 我似乎无法从searchResults函数返回值 我想把绳子还给你 现在Jquery自动完成-未从functon获取返回值,jquery,get,return,each,Jquery,Get,Return,Each,我确信我的编码有很多错误 然而,除了自动完成之外,一切都正常 我似乎无法从searchResults函数返回值 我想把绳子还给你 现在 alert("t: " + availableTags); 工作但是 alert("x: " + availableTags); 不 两个返回行都不返回值 我做错了什么 $(function(){ //$("#searchButton").click(function(){ //$("input").keyup(function(e)
alert("t: " + availableTags);
工作但是
alert("x: " + availableTags);
不
两个返回行都不返回值
我做错了什么
$(function(){
//$("#searchButton").click(function(){
//$("input").keyup(function(e){
var availableCompanies = searchResults('CompanyName',false);
var availableLocations = searchResults('Location',false);
$("input[id^='CompanyName']").keyup(function(){
//alert("CN");
searchResults('CompanyName',true);
});//$("input[id=CompanyName]").keyup(function(e){
$("input[id^='Location']").keyup(function(){
searchResults('Location',true);
});
$("input[id^='serving']").keyup(function(){
searchResults('serving',true);
});
$( "#CompanyName" ).autocomplete({
source: availableCompanies
});
$( "#Location" ).autocomplete({
source: availableLocations
});
alert(availableCompanies);
})//$(function(){})
function searchResults(which,populate,availableTags){
//clear search results
$("#searchResults").text("");
//clear available tags
//jqxAlert.alert(which);
//var sSearch = $("#search").val();
var sSearch = $("input[id='"+which+"']").val();
var url = "search.asp?" + which + "=" + sSearch;
//alert(url);
var availableTags = "";
$.get(url, function(data){
//$('#searchResults').html(data);
var uid =""
var company = "";
var location = "";
var phone1 = "";
var phone2 = "";
var phone3 = "";
var html = "";
var sql = "";
var i = 1;
if ($('company',data).text() == ""){
$("#searchResults").html("<tr><td>Sorry, there are no results.</td></tr>");
};
$.each($('company',data),function(index, el) {
uid = $(this).find('uid').text();
companyName = $(this).find('CompanyName').text();
location = $(this).find('location').text();
//phone1 = $(this).find('phone1').text();
//phone2 = $(this).find('phone2').text();
//phone3 = $(this).find('phone3').text();
//serving = $(this).find('serving').text();
//sql = "<br />" + $(this).find('sql').text() + "<br />";
//alert(which == "CompanyName");
if (which == "CompanyName"){
//availableTags = availableTags + companyName;
if (availableTags.indexOf(companyName) < 0){
if (availableTags == "") {
availableTags = companyName;
}else{
availableTags = availableTags + "," + companyName;
}
}
}
if (which == "Location"){
if (availableTags.indexOf(Location) < 0){
if (availableTags == "") {
availableTags = Location;
}else{
availableTags = availableTags + "," + Location;
}
}
}
if (sSearch != ""){
if (i % 2 == 0){
html = '<div id="c_' + uid + '" class="bgGrey">';
}else{
html = '<div id="c_' + uid + '" class="bgWhite">';
}
html = html + "<tr>";
html = html + "<td><b>←</b>" + companyName + " (" + location + ")</td>";
//html = html + company + " " + location ;
html = html + "</tr>";
html = html + "</div>";
//$("#searchResults").append(i + ' ' +x + ' ' + y + ' ' + sql + html);
$("#searchResults").append(html);
}
i++;
}); //$.each($('company',data),function(index, el) {
if (populate){
PopulateFields();
}else{
alert("t: " + availableTags);
return "test";
}
}).error(function() {
$("#searchResults").html("<tr><td>Results could not be retrieved. Alert T. McDermott</td></tr>");
}); //$.get(url, function(data){
alert("x: " + availableTags);
return availableTags;
}
$(函数(){
//$(“#搜索按钮”)。单击(函数(){
//$(“输入”).keyup(函数(e){
var availableCompanies=searchResults('CompanyName',false);
var availableLocations=搜索结果('Location',false);
$(“输入[id^='CompanyName'])。键控(函数(){
//警报(“CN”);
搜索结果('CompanyName',true);
});//$(“输入[id=CompanyName]”)。键控(函数(e){
$(“输入[id^='Location'])。键控(函数(){
搜索结果('Location',true);
});
$(“输入[id^='serving'])。键控(函数(){
搜索结果(“服务”,真实);
});
$(“#公司名称”).autocomplete({
资料来源:可用公司
});
$(“#位置”).autocomplete({
资料来源:现有资料
});
警报(公司可用);
})//$(函数(){})
函数搜索结果(其中,填充,可用标记){
//清除搜索结果
$(“#搜索结果”).text(“”);
//清除可用标记
//jqxAlert.alert(which);
//var sSearch=$(“#搜索”).val();
var sSearch=$(“输入[id=”+which+“]”).val();
var url=“search.asp?”+which+“=”+sSearch;
//警报(url);
var availableTags=“”;
$.get(url、函数(数据){
//$('#searchResults').html(数据);
var uid=“”
var company=“”;
var位置=”;
var phone1=“”;
var phone2=“”;
var phone3=“”;
var html=“”;
var-sql=“”;
var i=1;
如果($('company',data).text()==“”){
$(“#searchResults”).html(“对不起,没有结果。”);
};
$。每个($('company',data),函数(index,el){
uid=$(this.find('uid').text();
companyName=$(this.find('companyName').text();
location=$(this.find('location').text();
//phone1=$(this.find('phone1').text();
//phone2=$(this.find('phone2').text();
//phone3=$(this.find('phone3').text();
//serving=$(this.find('serving').text();
//sql=“
”+$(this.find('sql').text()+”
“;
//警报(其中=“公司名称”);
if(which==“CompanyName”){
//availableTags=availableTags+公司名称;
if(可用标记索引of(公司名称)<0){
如果(availableTags==“”){
availableTags=公司名称;
}否则{
availableTags=availableTags+“,”+公司名称;
}
}
}
如果(哪个==“位置”){
if(可用标记索引(位置)<0){
如果(availableTags==“”){
可用标记=位置;
}否则{
availableTags=availableTags+“,”+位置;
}
}
}
如果(搜索!=“”){
如果(i%2==0){
html='';
}否则{
html='';
}
html=html+“”;
html=html+“&larr;”+companyName+”(“+location+”);
//html=html+公司+“”+地点;
html=html+“”;
html=html+“”;
//$(“#搜索结果”).append(i+''+x+''+y+''+sql+html);
$(“#搜索结果”).append(html);
}
i++;
})/$。每个($('company',data),函数(索引,el){
如果(填充){
PopulateFields();
}否则{
警报(“t:+availableTags”);
返回“测试”;
}
}).错误(函数(){
$(“#searchResults”).html(“无法检索结果。警报T.McDermott”);
});//$.get(url,函数(数据){
警报(“x:+availableTags);
返回可用的标签;
}
您在ajax请求之外返回值,$.get()
中的部分仍在从服务器获取数据。您不能这样操作,因为这是一个异步操作。您有两个主要选项:
someOtherFunction(availableTags);
在$.get(url,function(data){})
函数的末尾,在那里它拥有数据并可以将其传递给任何需要的对象
您看到的是,
函数(data){}
在服务器将数据发送回浏览器后执行,然后您可以对其进行处理,因此您希望从那里继续。您返回的值在ajax请求之外,因此$.get()中的部分
仍在从服务器获取数据。您不能这样操作,因为这是一个异步操作。您有两个主要选项:
someOtherFunction(availableTags);
在$.get(url,function(data){})
函数的末尾,在那里它拥有数据并可以将其传递给任何需要的对象
您看到的是,一旦服务器将数据发送回浏览器,就会执行函数(data){}
,然后您就可以进行处理了