2013-09-27 111 views
5

我有一個jquery自動完成類型提前字段。它正確地工作並提示我值。但是,它要求我點擊我想選擇的選項。jquery自動完成 - 使用選項卡鍵入提前執行而不是選擇自動完成選項

如果提前輸入的值是1234,並且我點擊1234,它會用這個值運行一些邏輯,在下面的例子中提醒。

但是,如果我在1234中輸入並按Tab鍵,則未選擇自動完成選項,因此警報不會觸發。我怎麼能告訴jquery假設按下tab時選擇了輸入值,而不是強制用戶從提前自動填充類型中選擇一個選項?

我的語法如下:

function callAutocomplete(element) 
{ 
    $(element).autocomplete( 
    { 
     source: "get_sku_codes", 
     messages: 
     { 
      noResults: '', 
      results: function() {} 
     }, 
     select: function(event, ui) 
     { 
      var selectedObj = ui.item; 
      alert(selectedObj); 
     } 
    }); 
} 

重申,我想鍵入1234到輸入字段,按選項卡,並自動完成邏輯必須被稱爲如果我點擊了自動完成建議「1234」 。

可以這樣做嗎?也許輸入的onchange事件,但我如何獲得調用onchange函數來調用自動完成邏輯?

希望是有道理的。

一如既往的感謝。

回答

8

我相信你想要的autoFocus選項:

如果設置爲true的第一個項目將自動時顯示的菜單被聚焦。

考慮到這一點,你只需要改變你的widget的初始化:

function callAutocomplete(element) 
{ 
    $(element).autocomplete( 
    { 
     source: "get_sku_codes", 
     messages: 
     { 
      noResults: '', 
      results: function() {} 
     }, 
     select: function(event, ui) 
     { 
      var selectedObj = ui.item; 
      alert(selectedObj); 
     }, 
     autoFocus: true 
    }); 
} 

例子:http://jsfiddle.net/WP29E/132/

+1

容易,哇!謝謝安德魯。 – Smudger

+0

@Smudger:沒問題,很樂意幫忙。 –