2017-02-23 110 views
0

我每时每刻都在苦苦挣扎,今天再一次。 我附加了新的文本元素,我想将自动完成绑定到它。动态元素上的自动完成

这个代码在功能上与以前的onClick

$('#highlights').before("<input type='text' id='check_name' name='name' placeholder='Name of OPM' required class='ui-autocomplete-input'>"); 

这是自动完成网页上的结束

<script type="text/javascript"> 
$("#check_name").autocomplete({ 
     source: "src/check_name.php", 
     minLength: 1 
    }); 
</script> 

PHP文件的工作很好,当我通过URL访问它。

+0

可能重复: jQuery自动完成动态创建的输入](http://stackoverflow.com/questions/2663573/jquery-autocomplete-for-dynamically-created-inputs) –

+0

也许是这样,但我已经检查了答案,它并没有帮助我。那家伙在那里有不同的代码。 –

回答

1

因为.before():在匹配元素集中的每个元素之前插入由参数指定的内容。

您可以使用.prev()

的片段:

var availableTags = [ 
 
     "ActionScript", 
 
     "AppleScript", 
 
     "Asp", 
 
     "BASIC", 
 
     "C", 
 
     "C++", 
 
     "Clojure", 
 
     "COBOL", 
 
     "ColdFusion", 
 
     "Erlang", 
 
     "Fortran", 
 
     "Groovy", 
 
     "Haskell", 
 
     "Java", 
 
     "JavaScript", 
 
     "Lisp", 
 
     "Perl", 
 
     "PHP", 
 
     "Python", 
 
     "Ruby", 
 
     "Scala", 
 
     "Scheme" 
 
    ]; 
 

 

 
    $('#highlights').before("<input type='text' id='check_name' name='name' placeholder='Name of OPM' required class='ui-autocomplete-input'>") 
 
     .prev("#check_name") // get the newly prev added ele 
 
     .autocomplete({ 
 
      source: availableTags, 
 
      minLength: 1 
 
     });
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 

 
<div id="highlights"></div>

+1

谢谢:)工作 –

1

试试这个方法来处理动态控制,

var $addedInput=$("<input type='text' id='check_name' name='name' placeholder='Name of OPM' required class='ui-autocomplete-input'>"); 
$('#highlights').before($addedInput); 
$addedInput.autocomplete({ 
    source: "src/check_name.php", 
    minLength: 1 
}); 
+1

谢谢:)工作 –