2011-10-19 79 views
0

我有這樣的代碼:是來自其他功能的JS自動完成差異?

$("input#autocomplete").autocomplete({ 
    source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
}); 

和它的作品。如果我試圖把其他東西放在那兒想:

$("input#autocomplete").autocomplete({ 
alert ("test"); 
    source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
}); 

那麼它不工作,給這個錯誤:語法錯誤:意外的字符串。

我希望能夠在source:call之前進行AJAX調用,以便我可以獲取要顯示給用戶的數據。我誤解了這個應該如何工作的東西?

謝謝!

回答

1

看到自動完成的活動,我覺得「搜索」事件是一個你需要的,這裏是一個鏈接http://jqueryui.com/demos/autocomplete#event-search

這裏是一個Ajax例子

$("#user_name").autocomplete({ 
      source: "index.php?option=abc", 
      delay: 0, 
      minLength: 0, 
      autoFocus: true, 
      select: function (event, ui) { 

        $("#user_id").val(ui.item.id); 
        $(this).data("user_id",ui.item.id);//Store arbitrary data associated with the specified element 
        $(this).data("username",ui.item.value);//Store arbitrary data associated with the specified element 

       }, 
       selectFirst: true, 
       autoFill: true, 
       mustMatch: true 
      }) 
      .bind("blur",function() { 
       var user_id = $(this).data("user_id"); 
       var username = $(this).data("username"); 
       if(typeof username === \'undefined\') 
       { 
        username = \'\'; 
        user_id = null; 
       } 
       $(this).val(username); 
       $("#user_id").val(user_id); 
      }) 


; 
    });//fine autocomplete 
+0

是的,這是我正在使用,但不知道如何移動比例子。 – GeekedOut

+0

哦,那麼你需要的是這個http://jqueryui.it/demos/autocomplete#remote,再加上一個腳本,輸出json格式的數據 – max4ever

+0

,但這個例子與原始鏈接中的相同。我只是不清楚如何/在哪裏做ajax呼叫。 – GeekedOut

3

autocomplete將對象字面量作爲參數,這是一系列鍵:值對。 alert("test")是放在它中間的任意代碼。

var obj = { 
    key1: "value", //Okay 
    key2: false,  //Still okay 
    console.log("Hello, World!") //Bad 
}; 
+0

所以在那裏/我會怎麼做ajax調用來填充源代碼:? – GeekedOut

+0

如果'source'是一個字符串而不是一個數組,那麼自動完成插件將爲您調用ajax。請參閱[Remote Datasource](http://jqueryui.com/demos/autocomplete/#remote)示例。 – Dennis

1

.autocomplete()是一個jQuery插件或jQuery UI附加組件,它們都有自己的方法選項和語法。如果除了插件作者所允許的內容以外的任何內容,它將不起作用。

它看起來像你想在自動完成之前或之後運行一些JS。 bassistance.de和jquery ui版本的獨立jquery自動完成功能都有一些回調功能,可以讓你做到這一點。一旦你找到你正在使用源代碼中的哪一個,Google就會爲他們提供documebaant。

+0

我對jQuery有點新 - 什麼是回調?這是一個不同的方法,而不是做一個AJAX調用並獲取字符串值? – GeekedOut