How can I add jquery ui autocomplete to a dynamically created element?

前端 未结 2 1133
温柔的废话
温柔的废话 2020-12-03 03:08

I\'m trying to get jQueryUI AutoComplete to trigger on dynamically created form input elements, but it\'s not working. I\'ve tried using keyup.autocomplete and keydown.autoc

相关标签:
2条回答
  • 2020-12-03 03:32

    This works:

    $(function() {
      var options = {
        source: [
          "ActionScript",
          "AppleScript",
          "Asp",
          "BASIC",
          "C",
          "C++",
          "Clojure",
          "COBOL",
          "ColdFusion",
          "Erlang",
          "Fortran",
          "Groovy",
          "Haskell",
          "Java",
          "JavaScript",
          "Lisp",
          "Perl",
          "PHP",
          "Python",
          "Ruby",
          "Scala",
          "Scheme"
        ],
        minLength: 2
      };
    
      $("input.searchInput").live("keydown.autocomplete", function() {
        $(this).autocomplete(options);
      });
    
      var addInput = function() {
        var inputHTML = " <input name='search' value='' class='searchInput' maxlength='20' />";
        $(inputHTML).appendTo("form#myForm");
        $("input.searchInput:last").focus();
      };
    
      if (!$("form#myForm").find("input.searchInput").length) {
        addInput();
      }
    
      $("input#addButton").click(addInput);
    });
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script>
    <form id="myForm" name="myForm" method="post">
      <input id="addButton" name="addButton" type="button" value="Add an input" />
    </form>

    0 讨论(0)
  • 2020-12-03 03:37

    Function .live() is deprecated now.

    Looks like code like this works:

    var options = {
        source: ["ActionScript", "AppleScript"],
        minLength: 2
    };
    var selector = 'input.searchInput';
    $(document).on('keydown.autocomplete', selector, function() {
        $(this).autocomplete(options);
    });
    
    0 讨论(0)
提交回复
热议问题