我在asp.net中创建了一个自动完成文本框。但是,我无法阻止不包含在列表中的输入。任何帮助将不胜感激。
这是我的Javascript代码
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type="text/javascript">
$(function () {
var lstBrand = '<%= jsBrand %>';
var availableBrandTags = JSON.parse(lstBrand);
$("#txtBrandFooter").autocomplete({
source: availableBrandTags
});
$("#disable").click ( function() {
$("#txtBrandFooter").autocomplete({
disabled: true
});
});
$("#enable").click ( function() {
$("#txtBrandFooter").autocomplete({
disabled: false
});
});
});
</script>
这是我在ASP.NET中填充文本框自动填充的方式。
public void PopulateSearch()
{
availableDescriptionTags.Add("maria");
availableDescriptionTags.Add("marie");
availableDescriptionTags.Add("john");
availableDescriptionTags.Add("bob");
JavaScriptSerializer serializer = new
JavaScriptSerializer();
jsDescription = serializer.Serialize(availableDescriptionTags);
}
我有一个功能齐全的javascript,它可以执行我的操作,但是我不知道如何与我的代码集成。这是JavaScript。
_removeIfInvalid: function (event, ui) {
// Selected an item, nothing to do
if (ui.item) {
return;
}
// Search for a match (case-insensitive)
var value = this.input.val(),
valueLowerCase = value.toLowerCase(),
valid = false;
this.element.children("option").each(function () {
if ($(this).text().toLowerCase() === valueLowerCase) {
this.selected = valid = true;
return false;
}
});
// Found a match, nothing to do
if (valid) {
return;
}
// Remove invalid value
this.input
.val("")
.attr("title", value + " didn't match any item")
.tooltip("open");
this.element.val("");
this._delay(function () {
this.input.tooltip("close").attr("title", "");
}, 2500);
this.input.autocomplete("instance").term = "";
},
_destroy: function () {
this.wrapper.remove();
this.element.show();
}
});