【发布时间】:2010-05-10 22:12:45
【问题描述】:
我在循环中向多个文本输入添加自动完成插件时遇到问题(不返回错误)。
// get text inputs to attach autocomplete
var locinputs = $('#localizations').find('input:text');
// iterate over elements and add autocomplete plugin
for (var i = 0; i < locinputs.length; i++) {
// asp.mvc array with special characters replacing
var locNameField = locinputs[i].name.replace('[', '\\\\[');
locNameField = locNameField.replace(']', '\\\\]');
locNameField = locNameField.replace('.', '\\\\.');
$('input#' + locNameField).autocomplete('<%=Url.Action("GetCity", "Localization") %>', {
extraParams: {
provinceId: function () { return 21; }
},
dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].PlaceId, result: data[i].Name };
}
return rows;
},
formatItem: function (row, i, n) {
return row.Name;
},
width: 300,
mustMatch: true,
multiple: true
});
}
加载没有错误,我尝试使用Firebug调试,jquery选择器可以访问元素
<input type="text" name="loc[0].CityNames" id="loc[0].CityNames" value="" />
更正声明 $('#localizations input:text').each(function () {
$(this).autocomplete('<%=Url.Action("GetCity", "Localization") %>', {
extraParams: {
provinceId: function () { return 21; }
},
dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].PlaceId, result: data[i].Name };
}
return rows;
},
formatItem: function (row, i, n) {
return row.Name;
},
width: 300,
mustMatch: true,
multiple: true
});
});
【问题讨论】:
标签: jquery asp.net-mvc autocomplete loops