2013-02-26 28 views
1

我已經創建了許多自動完成,並且從來沒有出現過問題。 這個時候,我試圖在現有的頁面中插入自動完成(非常複雜的,有許多的JavaScript調用)jQuery自動完成不發送任何請求

我的代碼是簡單的像:

$('#named_invitees_0_user_id').autocomplete({ 
    source: 'www.bidon.com' 
}); 

我想:

  • 在$(document).ready()函數內收取此javascript
  • 不在頁面加載時收取此JavaScript,然後在Firebug控制檯中執行以前的代碼
  • 添加一些參數來自動完成(的minLength,殘疾人,延遲,beforeSend,...)
  • 設置源陣列

在這2個的情況下,我輸入「明白」我的自動完成功能,因爲它需要一些特定的自動完成屬性

<input id="named_invitees_0_user_id" name="named_invitees[0][user_id]" type="text" value="aaaa" autocomplete="off" class="ac_input"> 

但是,當我在我的輸入寫(關於Firebug的網絡活動)的東西NO請求從不發送。我認爲頁面上已經存在的一些javascript正在跟蹤這個查詢的控制,但我不知道它可能是什麼。

你呢?

編輯:

感謝您的回覆。我按照你的建議:

  • 嘗試設置一個數組作爲「源」:不會改變任何東西
  • 刪除所有該頁面的JS:只有jQuery的1.4.3和jQuery-UI-1.8。 20加載:不會改變任何東西
  • 變化的minLength到1的值:如果源地址返回JSON不會改變任何東西
  • 檢查:它證實
  • 檢查源地址是在我的網站命名空間:已確認

EDIT2:

發現問題!

有一個隱藏的JS代碼...一箇舊的「自動完成」jquery包括。結果:定義了2個自動完成。 我刪除了這個隱藏的代碼,一切正常!

感謝您的回覆。

+0

是bidon你的網站嗎?另外,你確實知道它現在正在下降,對吧? – Daedalus 2013-02-26 08:19:35

+0

bidon是一個法語單詞「foobar」。我可以寫'/','#'或真正的路徑到我的網站(它可以在其他頁面上運行),這不會改變。 – pierallard 2013-02-26 08:25:15

+0

由於頁面「非常複雜」,您可能需要退出頁面上的所有JS,但此腳本和jQuery/jQuery UI除外。如果它不起作用,請調試(或更新您的問題)。如果它*有效,繼續添加腳本直到找到衝突。 – 2013-02-26 08:31:04

回答

1

確保您的源代碼正在輸出正確的json。

的文檔和示例代碼

這裏檢查http://jqueryui.com/autocomplete/#remote是一個例子:

$("#named_invitees_0_user_id").autocomplete({ 
     source: "search.php", 
     minLength: 2 
    }); 

使用 「:」 源後!

+1

對不起,我在郵件中忘了「:」,而不是在我的代碼中。源可以輸出XHTML,JSON,JS,XML或其他任何東西:自動完成必須發送請求來檢查類型。沒有請求被髮送。 – pierallard 2013-02-26 08:30:26

+0

是的,如果沒有請求發送,「search.php」(或任何來源)是不相關的,直到請求實際上離開瀏覽器。 – 2013-02-26 08:31:59

+0

然後確保您的源代碼和頁面自動完成功能位於同一個域中。跨域請求不能使用ajax發送。 您也可以嘗試使用$ .ajax發送ajax請求以確保ajax正常工作 – codefreak 2013-02-26 08:35:37

相關問題