我正在使用 jQuery UI 自动完成小部件。 我需要在更改或选择后直接使用所选文本进行进一步处理。
但是当用户单击建议值时,输入的值就会被传递。
$( "#autocomplete" ).autocomplete({
source: function( req, resp ) {
$.post( "/echo/json/", {
json: '["Test1", "Test2", "Test3", "Test4", "Test5"]',
delay: 1
}, function(data) {
resp( data );
}, "JSON" );
},
select: function (event, ui) { alert($(this).val())}
});
此 fiddle 的示例:(尝试输入“tes”并通过鼠标选择建议)
我需要使用输入值。更改事件使用输入值,它需要在选择自动完成项时以及仅键入值时两种情况下工作,因此警报仅用于示例。
有什么办法可以解决这个问题吗?
编辑:
我最终使用: $(this).val(ui.item.value).val();
此解决方案始终在更改事件后获得预期值。
最佳答案
更改此:
select: function (event, ui) { alert($(this).val())}
对此:
select: function (event, ui) {alert(ui.item.value);}
新 fiddle :http://jsfiddle.net/M3Yur/4/
关于鼠标单击后 jQuery UI 自动完成值是旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300683/