使用自动完成功能传递的不完整值(jquery)

时间:2017-09-18 11:30:41

标签: jquery autocomplete

我有一个表单输入,它使用jquery自动完成功能#1:

$( function() {
    var availableTags = JSON.parse($('#possible_options').val());
    $( "#id_form1" ).autocomplete({
        source: availableTags
    });
} );

几乎完全正常工作:一旦开始写作,下拉列表会显示预期的可能值。选择其中一个下拉列值后,所选值将显示在表单输入框中并触发事件:

$('.form-control').on('change autocompleteselect',function () {
    var query1; 
    query1 = $('#id_form1').val();
    $.get('/suggest/', {selection1: query1}, function (data) {
        $('#resultstable').html(data);
    });
});

此函数#2获取表单中的值(一旦完成自动完成或表单中的值已更改)并更新结果表。 问题出现了:当您开始在表单输入中键入几个字母,然后从下拉列表中选择一个值(选择值时触发函数#2),函数#2而不是获取所选值,只获取到目前为止输入的字母串,因此在更新表时会出现问题。

我一直在尝试不同的解决方法而没有运气。 非常感谢你, 卡洛斯

1 个答案:

答案 0 :(得分:0)

如果您想获得所选值,则可以根据以下代码使用autocompletechangeautocompleteselect或两者。

当您选择一个选项并使输入字段模糊时,会触发

autocompletechange事件。

选择选项后立即触发

autocompleteselect事件。

$('#id_form1').on('autocompletechange autocompleteselect', function (e, ui) {
    console.log('You selected: ' + ui.item.value);
});

希望这有帮助。