使用数据源属性自动完成?

rjm*_*mcb 1 javascript ajax jquery autocomplete

我可以将数据属性用于自动填充的来源吗?

例如

HTML

 <input type="text" class="autocomplete" data-source="/search.php" />
Run Code Online (Sandbox Code Playgroud)

使用Javascript

  $(".autocomplete").autocomplete({
        source :  $(this).data('source'),
        minLength:1,
        select: function( event, ui ) {
            console.log( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
        }
    });
Run Code Online (Sandbox Code Playgroud)

我尝试过,但它总是给我一个错误.我的代码出了什么问题?

Uncaught TypeError: Property 'source' of object #<Object> is not a function

gtz*_*mis 7

在源代码中,您可以使用this.element引用输入

$(".autocomplete").autocomplete({
   source :  this.element.attr('data-source'),
   minLength:1,
   select: function( event, ui ) {
   console.log( ui.item ?
            "Selected: " + ui.item.value + " aka " + ui.item.id :
            "Nothing selected, input was " + this.value );
    }
});
Run Code Online (Sandbox Code Playgroud)


rjm*_*mcb 6

这是修复

$('.autocomplete').keypress(function(){ 
    $(this).autocomplete({ 
        source: $(this).data('source'), 
        minLength: 1, 
        select: function(event, ui) { 
            console.log(ui.item ? "Selected: " + ui.item.value + " aka " + ui.item.id : "Nothing selected, input was " + this.value); 
        } 
    }); 
}); 
Run Code Online (Sandbox Code Playgroud)

我添加了一个按键功能,以便它获取当前元素.