2012-12-15 85 views
1
  $("input#lastname").autocomplete({ 
      source: "autocomplete.lastname.php" 
     }); 

我遇到了一個問題,當我使用tab來改變文本框時,下拉菜單卡在向下的位置。可以做些什麼來解決這類問題?我已經有這樣的事情了:jQuery .autocomplete是粘的

  $("input#firstname").autocomplete({ 
      source: "autocomplete.firstname.php" 
     }).keyup(function (e) { 
    if(e.which === 13) { 
     $(".ui-menu-item").hide(); 
    }    
}); 

這不正是我的意圖,但也許它可以被修改?我還注意到,在底部,仍然顯示在輸入菜單的底部殘餘部分。

在此先感謝!

回答

1

它滯後是因爲您的source是一個PHP文件,它必須加載並處理那裏的內容。


一個快速和骯髒的解決方案將是一個加載AJAX調用。

$(function() { 
    var lastnames; 

    $.get("autocomplete.lastname.php", function(data) { 
     lastnames = data; 
    }); 


    $("input#lastname").autocomplete({ 
     source: lastnames 
    }); 
});​ 
+0

我該怎麼辦?你有可以推薦的改變嗎? – Giuseppe

0

我有同樣的問題,但加在一個AJAX調用似乎對我來說過分殺傷。所以,我添加了一行關閉我的表上的所有自動完成,當用戶集中到下一個輸入框:

$("#form input").on("focus", function(e) { 
    $("#form autocomplete_input_1, #form autocomplete_input_2").autocomplete("close"); 
}); 

這個也沒有用,當你需要它自動完成的干擾,但很快就躲在它的好處對於那些可以通過表單快速移動的用戶。