2013-07-15 29 views
0

有人可以帮我添加弹出效果点击这个jQuery自动完成?我能够添加使用jQuery的自动完成弹出单击多个单词

.bind('focus', function() { 
    $(this).autocomplete("search"); 

但它不适用这个多字一个。那么如何为下面的代码添加弹出效果?任何帮助,将不胜感激。

<!doctype html> 

<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>jQuery UI Autocomplete - Multiple values</title> 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
<link rel="stylesheet" href="/resources/demos/style.css" /> 
<script> 
$(function() { 
var availableTags = [ 
    "ActionScript", 
    "AppleScript", 
    "Asp", 
    "BASIC", 
    "C", 
    "C++", 
    "Clojure", 
    "COBOL", 
    "ColdFusion", 
    "Erlang", 
    "Fortran", 
    "Groovy", 
    "Haskell", 
    "Java", 
    "JavaScript", 
    "Lisp", 
    "Perl", 
    "PHP", 
    "Python", 
    "Ruby", 
    "Scala", 
    "Scheme" 
]; 
function split(val) { 
    return val.split(/,\s*/); 
} 
function extractLast(term) { 
    return split(term).pop(); 
} 

$("#tags") 
    // don't navigate away from the field on tab when selecting an item 
    .bind("foucus", function(event) { 
    if (event.keyCode === $.ui.keyCode.TAB && 
     $(this).data("ui-autocomplete").menu.active) { 
     event.preventDefault(); 
    } 
    }) 
    .autocomplete({ 
    minLength: 0, 
    source: function(request, response) { 
     // delegate back to autocomplete, but extract the last term 
     response($.ui.autocomplete.filter(
     availableTags, extractLast(request.term))); 
    }, 
    focus: function() { 
     // prevent value inserted on focus 
     return false; 
    }, 
    select: function(event, ui) { 
     var terms = split(this.value); 
     // remove the current input 
     terms.pop(); 
     // add the selected item 
     terms.push(ui.item.value); 
     // add placeholder to get the comma-and-space at the end 
     terms.push(""); 
     this.value = terms.join(", "); 
     return false; 
    } 
    }); 
    }); 
    </script> 
</head> 
<body> 

<div class="ui-widget"> 
<label for="tags">Tag programming languages: </label> 
<input id="tags" size="50" /> 
</div> 


</body> 
</html> 

回答

0

您可以尝试on input事件。它适用于我

$('#tags').on('input', function() { 
    $(this).autocomplete("search"); 
}); 
+0

我试过你,它不起作用。 – user2584325

+0

你是什么意思与“多个词”? – schmidtphil

+0

看看上面的代码,我的意思就像当你输入ex php那么自动完成会显示你的匹配,你选择它,如果你想再次选择像Java一样,你可以。不久,您可以在由逗号分隔的一个输入字段上选择多个值(单词)。 – user2584325

相关问题