2012-02-27 105 views
1

我試圖配置自動填充插件,以便它將隨搜索一起發送附加參數。我查看了自動完成搜索事件,但沒有找到有關此功能需要執行的文檔,才能使插件生效。如何自定義自動填充搜索事件

我試着在搜索事件中插入console.log(...),但它沒有出現在控制檯中。

爲了澄清,我想修改輸入字母時發送到服務器的參數。

我到目前爲止的代碼是這樣的:

$('#contacts').autocomplete({ 
     source: 'autocompleteContacts', 
     focus: function(event, ui) { 
      $("#contacts").val(ui.item.label); 
      return false; 
     }, 
     select: function(event, ui){ 
      $("#contacts").val(ui.item.label); 
      selectedID = ui.item.value; 
      return false; 
     }, 
     search: function(event, ui){ 
      var str = ''; 
      for(var attr in event){ 
       str += attr.toString() + '\n'; 
      } 
      console.log(str); 

      var str2 = ''; 
      for(var attr in ui){ 
       str2 += attr.toString() + '\n'; 
      } 
      console.log(str2); 
     } 
    }); 

但正如我所說,什麼也不顯示在控制檯中,雖然自動完成照常工作。

+0

如果您可以發佈您的示例代碼,這將是有幫助的。 – DG3 2012-02-27 18:32:55

回答

3

我想你要找的是source選項。您可以指定自己的功能執行搜索:

$("#autocomplete").autocomplete({ 
    source: function (request, response) { 
    /* request.term is the search term, response is a callback function your 
     code must call with the results */ 
     $.ajax({ 
      url: "your_source_url", 
      dataType: "json", 
      data: { 
       term: request.term, 
       myData: "foobar" 
      }, 
      success: response, 
      error: function() { 
       response([]); 
      } 
     }); 
    } 
}); 

remote with JSONP example是一個很好的起點。