Jquery自动完成不工作。不能给数据响应的价值(jQuery.map(data.Data)
我想学习MVC的jQuery。一切似乎都很好,但自动完成是行不通的。我debbuged它,可能我的成功方法不起作用。帮我Jquery自动完成不工作。不能给数据响应的价值(jQuery.map(data.Data)
我的控制器代码: - 。
public ActionResult GetName(string term)
{
AjaxResponse objAjaxResponse = new AjaxResponse();
List<AutoCompleteModel> objData = masterRepository.getAutoComplete(term);
objAjaxResponse.Status = AjaxResponseStatusCodes.Ok;
objAjaxResponse.Message = "Autocom";
objAjaxResponse.Data = objData;
return Json(objAjaxResponse);
}
库代码: -
public List<AutoCompleteModel> getAutoComplete(string MyName)
{
List<AutoCompleteModel> adasd = new List<AutoCompleteModel>();
//adasd = this.DB.ExecuteSprocAccessor<AutoCompleteModel>("dbo.[getNameByName]",MyName).ToList();
using (IDataReader IReader = this.DB.ExecuteReader("dbo.getNameByName", MyName))
{
MapListRecord<AutoCompleteModel>(IReader, adasd);
//MapRecord(IReader, adasd);
IReader.NextResult();
}
return adasd;
}
jQuery的: -
jQuery(document).ready(function() {
jQuery("#MyName").keyup(function() {
BindAutoCompleteGrid();
});
});
function BindAutoCompleteGrid() {
jQuery("#MyName").autocomplete({
//minLength: options.minLength == undefined ? 1 : options.minLength,
source: function (request, response) {
jQuery.ajax({
type: 'POST',
url: GetNameUrl,
data: { term : request.term },
//data: options.data == undefined ? { "term": jQuery(options.textObject).val() } : options.data,
dataType: "json",
cache: false,
global: false,
responseType: "json",
sucesscallbackfunction: 'onSucessGetName'
});
}
});
}
function onSucessGetName(data, response) {
response(jQuery.map(data.Data, function (item) {
return {
label: item["Value"],
name: item["Name"]
}
}));
}
文本框: -
<div>
@Html.TextBoxFor(m => m.MyName, new { @id="MyName",@name="MyName", @class="txtCustDetails"})
</div>
任何帮助或建议表示欢迎。 Thankyou ..
我没有在jQuery.ajax()
:http://api.jquery.com/jQuery.ajax/的可用设置列表中看到sucesscallbackfunction
。此外,即使回拨正在执行,response
回调也不在范围内。
试试这个:
function BindAutoCompleteGrid() {
jQuery("#MyName").autocomplete({
source: function(request, response) {
jQuery.ajax({
//...
//sucesscallbackfunction: 'onSucessGetName' // remove
}).done(function(data) {
response(jQuery.map(data.Data, function(item) {
return {
label: item["Value"],
name: item["Name"]
}
}));
});
}
});
}
好吧,我现在尝试了,我得到的数据价值。当我输入's'时,从数据库中选择4个名字,但是我仍然没有得到用户界面上显示的列表。请指导我更多。 –
感谢您的帮助兄弟。 –
编辑的jQuery
jQuery(document).ready(function() {
jQuery("#MyName").autocomplete({
source: function (request, response) {
jQuery.ajax({
type: 'POST',
url: GetNameUrl,
data: { term: request.term},
dataType: "json",
cache: false,
global: false,
responseType: "json",
success : (function (data) {
response(jQuery.map(data.Data, function (item) {
return {
label: item.MyName
// name: item["MyName"]
}
// jQuery("#MyName").val(item["value"])
}))
})
})
}
})
});
我认为你不需要添加这个作为答案,这是不同于你的第一个问题。 –
你能解释一下它more..what不工作?你有没有检查控制台日志? –
没有进入成功的方法,但它现在正在进行,但仍然无法正常工作。 –
我相信你有一些错误,你检查了控制台吗? –