2011-12-22 111 views
0

這裏是場景1:用戶開始鍵入一些字,自動完成的發動機示出了表明列表(AJAX請求之後)。用戶點擊該列表中的某個項目。選擇事件已被觸發。一切安好。jQuery的自動完成手動輸入

場景2:用戶開始鍵入一些字,自動完成的發動機示出了表明列表(AJAX請求之後)。但是這次用戶沒有點擊物品並轉到另一個區域。 select事件尚未被觸發。但是輸入的用戶值是正確的。我如何手動觸發選擇事件? 謝謝。

回答

2
$(document).on('blur', "#inputField", function() { 

    $(this).trigger('autocompleteselect'); 

}); 

從KARTHIK的建議,一個解釋:綁定在輸入框的模糊事件的處理程序,這樣,當用戶離開現場,它運行。這個函數然後調用觸發器應該(理論上)也綁定到這個輸入框的'autocompleteselect'事件。由於nKognito說這不起作用......好吧,我想我需要再看一些代碼才能進一步排除故障。

編輯

好了,根據您的jsfiddle,我嘗試過,但未能獲得觸發autocompleteselect工作。所以,現在,我的建議是:

var list = [{id:1,Name:"John"},{id:2,Name:"Johna"}]; 
$('#a').autocomplete({ 
      source: function(request, response) { 
       response($.map(list, function(item) { 
          return {id : item.id, label : item.Name}; 
         })); 
      }, 
      minLength: 2, 
      select: function() { selectHanlder(this) } 
     }).blur(function() { selectHandler(this) }); 


function selectHandler(this) { 
       // do what you will 
      } 

這只是調用相同的處理作爲autocompleteselect,在模糊事件。應該是相同的效果。

+0

@傑克:試着給出解釋你的答案。因此,每個人都可以理解你想說什麼。 – karthik 2011-12-22 05:16:25

+0

不起作用。 jQuery的 - 1.7.1,UI - 16年1月8日從 – nKognito 2011-12-22 05:18:46

+0

反饋 – 2011-12-22 05:41:12