gpt4 book ai didi

jquery - 你知道为什么为我的下拉框引入 jquery ui 自动完成功能也会改变我的列表框吗?

转载 作者:行者123 更新时间:2023-12-01 04:31:03 29 4
gpt4 key购买 nike

我正在尝试更改我的组合框以使用自动完成功能,因此我利用 the code listed here (这非常适合我的下拉菜单)

问题是我也在同一页面上有一个包含以下代码的列表框:

<%= Html.ListBox("Cars", Model.BodyParts.Select(
x => new SelectListItem {
Text = x.Name,
Value = x.Id,
Selected = Model.CarsSelected.Any(y => y.Id == x.Id)
}
))%>

看来 jquery ui 代码也将其更改为自动完成下拉列表(而不是将其保留为多选列表框)

知道如何防止这种情况发生吗?

我实际上只是使用确切的代码 on this page

<script type="text/javascript">
(function($) {
$.widget("ui.combobox", {
_create: function() {
var self = this;
var select = this.element.hide();
var input = $("<input>")
.insertAfter(select)
.autocomplete({
source: function(request, response) {
var matcher = new RegExp(request.term, "i");
response(select.children("option").map(function() {
var text = $(this).text();
if (!request.term || matcher.test(text))
return {
id: $(this).val(),
label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"),
value: text
};
}));
},
delay: 0,
select: function(e, ui) {
if (!ui.item) {
// remove invalid value, as it didn't match anything
$(this).val("");
return false;
}
$(this).focus();
select.val(ui.item.id);
self._trigger("selected", null, {
item: select.find("[value='" + ui.item.id + "']")
});

},
minLength: 0
})
.addClass("ui-widget ui-widget-content ui-corner-left");
$("<button>&nbsp;</button>")
.insertAfter(input)
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
}).removeClass("ui-corner-all")
.addClass("ui-corner-right ui-button-icon")
.position({
my: "left center",
at: "right center",
of: input,
offset: "-1 0"
}).css("top", "")
.click(function() {
// close if already visible
if (input.autocomplete("widget").is(":visible")) {
input.autocomplete("close");
return;
}
// pass empty string as value to search for, displaying all results
input.autocomplete("search", "");
input.focus();
});
}
});

})(jQuery);

$(function() {
$("select").combobox();
});
</script>

最佳答案

我猜测您的 JQuery 选择器(您的问题中未提供)正在抓取页面上的所有下拉菜单。您应该考虑使其更具体,最有可能通过 ID 引用元素。 JQuery 文档中有很多很好的示例:

http://api.jquery.com/category/selectors/

关于jquery - 你知道为什么为我的下拉框引入 jquery ui 自动完成功能也会改变我的列表框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560316/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com