JQueryUI自动完成功能不会从选择框更新其数据属性

时间:2015-11-01 15:08:56

标签: javascript jquery jquery-ui

Example

$('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')不是获取最新数据属性的合适方式吗?

1 个答案:

答案 0 :(得分:1)

如何直接从select控件中选择值,如下所示:

$('#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