2011-10-14 43 views
0

在表單中使用jquery和jquery-ui自動完成。問題是,如果用戶填寫表單,然後導航到不同的頁面,然後返回到表單,所有字段仍將填充,除了自動填充的字段將爲空白。jquery-ui autocomplete中斷填充表單域的瀏覽器存儲

我鑽下來到這一點:

<script type="text/javascript"> 
    window.onload = function(){ $("#ac_box").autocomplete({ 
    source: ("tatooine dagobah hoth bespin yavin alderaan ry'leh kessel nar-shadda".split(' '))}) 
    };* 
</script> 
... 
<form><input type="text" id="ac_box"></form> 

將顯示問題,但刪除腳本使得它走(離開頁面和返回時的文字留在現場)。我已經玩過了自動完成選項,但我肯定可能錯過了一些東西。

此外,它可能在不同的瀏覽器中有所不同。我在mac上近期版本的Chrome中遇到問題

回答

0

問題在於瀏覽器在導航到內置自動填充行爲時將記住表單值的行爲綁定在一起。因此,關閉本機自動完成功能會停止瀏覽器在導航回頁面時記住該值。

由於jQuery UI Autocomplete小部件會禁用本機自動填充,因此它還會無意中禁用瀏覽器在導航時記住字段值的功能。如果您在頁面卸載前重新啓用本機自動填充,瀏覽器將記住該值。

我剛剛爲此解決了一個問題,所以它應該在1.8.17中正常開始工作。在此期間,你可以添加到您的網頁來解決這個問題:

$(window).bind("beforeunload", function() { 
    $(".ui-autocomplete-input").removeAttr("autocomplete"); 
}); 
+1

此修補程序打破了應用程序自定義的'onbeforeunload'監聽器。壞。請參閱Bug#7790中的註釋。修補程序會修復嗎? –