0

沒有得到選擇匹配選項我已經做了jQuery UI - autocomplete我在其中添加了以下條件:jQuery用戶界面自動完成 - 對事件的內容

  1. 排序選項列表
  2. 必須選擇一個選項

這裏我犯了一個錯誤,當我輸入確切的選項時,它沒有被選中。

例如:

var json = ["JOAQUIN", "BERNARDINO", "MODOC", "ALASKA", "MADERA", "ANDERSON", 
                "Kingston", "Kala", "Aka"]; 
  1. I型aka,它是不接受
  2. 我也試過Aka,仍然是不接受

如何重現:

鍵入textbox上面的文字的,只是focusout後 - 值 將被清空。我想處理aka = Aka = AKA(有/無從選項列表中選擇)

PS:我不要求代碼,我做了一個小錯誤,我需要它是正確的。

這裏是我的fiddle,在這裏你可以很容易地重現異常。

如何更改我的代碼以便像這樣工作。請分享您的建議,並在正確的條件下讓我指出正確的方向。

+1

[這裏](http://jqueryui.com/autocomplete/)你的小提琴是工作的罰款。你能解釋一下你認爲應該做什麼,這與我提供的例子不同嗎? – Nunners

+0

我不明白.. – Reigel

+0

@Reigel在我的[小提琴](http://jsfiddle.net/Gm9Bz/17/)如果您鍵入'aka'或'Aka'和focusout而沒有從下拉列表中選擇它。然後你可以看到文本框變空了。但是,我不希望這件事發生。如果您需要更多信息,請與我們聯繫。 – Praveen

回答

0

據我所見,從documentation只有在選擇下拉項目(點擊)時纔會設置UI屬性,因此您必須在更改函數中添加驗證以手動檢查值。

2

如果將事件更改爲關閉而不是更改事件會怎樣。然後檢查數值是否在數組中,如果不清除容器。這將需要您在輸入值時匹配大小寫。如果你想忽略大小寫,你可以在搜索數組之前將json數組轉換爲小寫字母和值小寫。

基於示例

fiddle

var json = ["JOAQUIN", "BERNARDINO", "MODOC", "ALASKA", "MADERA", "ANDERSON", "Kingston", "Kala", "Aka"]; 
$('input').autocomplete({ 
    source: function (request, response) { 
     var matches = $.map(json, function (json) { 
      if (json.toUpperCase().indexOf(request.term.toUpperCase()) === 0) { 
       return json; 
      } 
     }); 
     response(matches); 
    }, 

    close: function(event, ui) { 
     var index = jQuery.inArray($('input').val(), json); 
     if (index == -1) { 
      $('input').val("");   
     } 
    } 
}); 
+0

+1這是一個很好的觀點。 – Praveen

相關問題