单击鼠标后的jQuery UI自动完成值为旧值

时间:2011-06-10 00:12:22

标签: jquery jquery-ui autocomplete

我正在使用jQuery UI Autocomplete小部件。 我需要使用所选文本进行进一步处理,更改后直接或选择。

但是当用户点击建议值时,会传递键入的值。

$( "#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())}
});

这个小提琴的一个例子:(尝试输入“tes”并通过鼠标选择建议)

http://jsfiddle.net/M3Yur/

我需要使用输入值。更改事件使用输入值,它在两种情况下都需要在选择自动填充项目时工作,而且只需键入一个值,因此警报仅用于示例。

有什么方法可以解决这个问题吗?

编辑: 我最终使用:$(this).val(ui.item.value).val(); 此解决方案始终在更改事件后获得预期值。

2 个答案:

答案 0 :(得分:4)

改变这个:

select: function (event, ui) { alert($(this).val())}

对此:

select: function (event, ui) {alert(ui.item.value);}

新小提琴:http://jsfiddle.net/M3Yur/4/

答案 1 :(得分:2)

ui参数包含您要查找的信息:

select: function (event, ui) { alert(ui.item.value); }