2012-03-30 74 views
0

我正在使用jquery自动完成的文本区域。我希望每当按“空格键”时都会调用自动填充功能。它只在第一次就能正常工作。可能有人请帮助我走出这个**jquery自动完成的文本区域

我用下面的代码:

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"  type="text/javascript"> </script> 
     <script src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js" type="text/javascript"></script> 
     <script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/jquery.bgiframe-2.1.2.js" type="text/javascript"></script> 
     <script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/minified/i18n/jquery-ui-i18n.min.js" type="text/javascript"></script> 
<script> 
function auto_comp(flag1) 
{ 

$(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", 
     "{ }" 

    ]; 
if(flag1 == 1) 
{ 

    $("#tags").autocomplete({ 

     source: availableTags 
    }); 

} 
}); 
} 
</script> 

<div class="demo"> 

<div class="ui-widget"> 
<textarea id="tags" name="get" rows="5" cols="31"></textarea> 

<script> 
    var charfield=document.getElementById("tags"); 

var flag=0; 
charfield.onkeypress=function(e){ 
    var e=window.event || e; 
    var keyunicode=e.charCode || e.keyCode; 
    if(keyunicode == '97'|| keyunicode == '65') 
    { 
    flag=1; 
    auto_comp(flag); 

} 
document.getElementById("unicode").value=keyunicode; 
} 

    </script> 
</body></html> 

回答

1
+0

当我给“()”或“[]”的availabletags数组中它不当我输入'('或'[',但对于“{}”可以正常工作时,提示相同。 – 2012-03-30 06:31:13

+0

@SumanthPikkili:为我投票 – Ben 2012-03-30 10:47:07

+0

嘿,谢谢。 [markItUp](http://markitup.jaysalvat.com)非常好。 – Paolo 2012-09-16 21:14:37

0

jQuery的自动完成是一个小部件,因此并不需要被调用每次你需要做的事情的时间。你可以做的,而不是这样的:

$("#tags").autocomplete({ 
    source: availableTags 
}).bind("autocompletesearch", function(event, ui) { 
    return !(event.keyCode == '97'|| event.keyCode == '65'); 
});