$('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 :(得分: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