2015-11-01 62 views
0

ExamplejQueryUI的自動完成不從選擇框中

$('select').change(function(){ 
     $('#auto').attr('data-id',$(this).val()) 
}) 

$('#auto').autocomplete({ 
    delay: 1000, 
    source: function(request, response) { 
      alert($(this.element).data('id')) 
      return false 
    } 
}) 

<select name="category"> 
    <option value="A">A</option> 
    <option value="B">B</option> 
    <option value="C">C</option> 
</select> 

<input id="auto" data-id="A" type="search"/> 

我想更新自動輸入數據屬性,當有人選擇在選擇框的選項更新其數據屬性。

有什麼辦法來防止自動完成輸入緩存其數據屬性?第一次在選擇框中將選項從A更改爲B時,輸入能夠更新data-id。但是當我從B更改爲C時,輸入仍然提示B而不是C$(this.element).data('id')不是獲取最新數據屬性的適當方式嗎?

+0

您可以創建一個的jsfiddle – vinayakj

回答

1

關於直接從選擇控制採摘的價值,像這樣的內容:

$('#auto').autocomplete({ 
    delay: 100, 
    source: function(request, response) { 
     var selected = $('select[name="category"] option:selected'), 
      isSomethingSelected = selected.length == 1, 
      selectedVal = isSomethingSelected ? 
         selected.val() : 
         $('select[name="category"] option:first').val(); 
     alert(selectedVal); 
     return false; 
    } 
}); 

看到JSFiddle