我在一个带有不同文本框的表单上有几个自动完成,所以我尝试重构自动完成。它起作用了……除了一个非常烦人的小细节。
我的文本框都是基于百分比的宽度、不同的大小,并且在引导结构中使用 class = "row" 和 "col-md-9" 来布局页面。长话短说:不同的尺寸,而不是预设的宽度。
为什么这是个问题?不将宽度设置为 ul-autocomplete 意味着它最初会尝试匹配元素,但结果比它扩展的框“更宽”。大多数研究表明设置权重很容易,只需在 CSS 中设置 weight: ?px 即可。显然我不能那样做。那么我的选择是什么?
如果需要,我的 jquery:
$('*[data-autocomplete-url]')
.each(function () {
var ddl = $(this);
$(this).autocomplete({
dataType: 'json',
source: function (request, response) {
$.get((ddl.data("autocomplete-url")), { phrase: request.term }, function (data) {
response($.map(data, function (item) {
return {
label: item.Text,
value: item.Value,
id: item.Value
};
}));
});
},
focus: function (event, ui) {
event.preventDefault();
ddl.val(ui.item.label);
},
change: function (event, ui) {
if (!ui.item) {
ddl.val("");
}
},
autoFill: true,
mustMatch: true,
minLength: 4,
});
});