需要在隱藏字段中獲取所選值的ID,但始終返回undefined。控制器的動作和腳本如下。Jquery UI - 自動完成自定義錯誤
我在做什麼錯在這裏。我完全是這個UI自動完成的新手。
所以需要幫助來解決這個問題。
('#PanelSearchKeyword').autocomplete({
source: function(request, response) {
var params = {};
params.supplieTyperName = document.getElementById('PanelSearchKeyword').value;
$.ajax({
type: 'POST',
dataType: "json",
url: '/Home/GetSupplierTypeNameList',
data: AddAntiForgeryToken(params),
success: function(data) {
var array = data.map(function(element) {
return {
value: element['SupplierTypeName'],
id: element['SupplierTypeId']
};
});
response(array);
},
error: function(xhr, ajaxOptions, thrownError) {
logError(ajaxOptions, thrownError);
}
});
},
select: function(event, ui) {
$("#SuppTypeId").val(ui.item.SupplierTypeId); // save selected id to hidden input
var a = $("#SuppTypeId").val();
alert(a);
//return false;
},
minLength: 2
});
我的控制器動作看起來像
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult GetSupplierTypeNameList(string supplieTyperName)
{
try
{
List<SupplierTypeViewModel> supplierTypeNameList = new List<SupplierTypeViewModel>();
supplierTypeNameList = (from supplierType in db.PPSupplierTypes
where supplierType.PPSupplierTypeName.ToUpper().StartsWith(supplierTypeName.ToUpper())
orderby supplierType.PPSupplierTypeName
select new SupplierTypeViewModel
{
SupplierTypeId = supplierType.PPSupplierTypeId,
SupplierTypeName = supplierType.PPSupplierTypeName
}).ToList();
return supplierTypeNameList;
}
catch (Exception)
{
throw;
}
return Json(suppplierTypeResult, JsonRequestBehavior.AllowGet);
}
嘗試'ui.item.value'或'ui.item.id' – Tushar
@Tushar我已經嘗試過這一點,但結果是相同的「未定義」。 –
你可以創建一個'jsfiddle'演示這個 – Tushar