2013-07-15 55 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

相關問題