我對編程頗爲陌生,但大多數時候我是JavaScript/jQuery的新手。我在這裏的原因是因爲即使我已經通過互聯網搜索自動完成搜索解決方案/我嘗試應用我發現的不同版本,但我無法獲得實際可行的解決方案:)如何實現Javascript自動完成功能?
這裏是我的一段代碼:
var mydata
$(document).ready(function()
{
ConstructSuggestionArray();
$("[id$='txtSearchProject']").keypress(function()
{
$("[id$='txtSearchProject']").autocomplete
({
source: mydata
})
})
});
function ConstructSuggestionArray()
{
$.ajax
({
url: 'ProjectManagement.aspx/ConstructSuggestionArray',
type: "POST",
data: {},
async: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (response)
{
if (response.d != null)
{
mydata = jQuery.parseJSON(response.d);
return true;
}
else
{
return false;
}
}
});
}
而且,一段代碼,我構建陣列:
public string ConstructSuggestionArray()
{
using (DataClassesDataContext context = new DataClassesDataContext())
{
List<Utils.ProjectsOfAUser> theProjects =
ReturnProjectsAccordingToAllocation(context);
string[] projectsNameArray = new string[theProjects.Count];
int index = 0;
foreach (Utils.ProjectsOfAUser oneProject in theProjects)
{
projectsNameArray[index] = oneProject.Name;
index++;
}
string strJSON = string.Empty;
JavaScriptSerializer objJSSerializer = new JavaScriptSerializer();
strJSON = objJSSerializer.Serialize(projectsNameArray).ToString();
return strJSON;
}
}
}
在我的項目,並在我的ASP我也補充腳本。網頁。
我非常困惑,如果你能幫我弄清楚這一點,我會非常感激。
提及:txtSearchProject - 是一個asp控件。
預先感謝您。
http://jqueryui.com/demos/autocomplete/? – 2012-08-07 12:05:25
如果你在你的jQuery中指定'dataType:'json'',你可能不需要調用'jQuery.parseJSON()',因爲你的'success'回調函數應該只傳遞一個對象而不是一個字符串。如果響應不是有效的JSON,'success'回調將不會被執行。你能發佈AJAX調用的響應嗎? – 2012-08-07 12:13:27
顯然沒有答案。我在腳本中放了一些斷點(並且我使用的是IE,因爲我知道我無法在其他瀏覽器中進行調試),但它不會去那裏。對不起,我假設你聽到很多愚蠢/明顯的問題,但是如果我還沒有嘗試做一段時間的研究工作,現在我不會發布它:) – SunnyDay 2012-08-07 12:18:21