防止javascript自动完成功能在ASP.NET中不接受有效输入

时间:2019-05-07 00:03:47

标签: javascript asp.net

我在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();
}
});

0 个答案:

没有答案