如何获取触发 jQuery 自动完成小部件的输入元素



我有几个输入字段,这些输入字段通过jQuery自动完成功能进行了增强。触发选择事件时如何获取对应的输入字段?

<input name="1" value="">
<input name="2" value="">
<input name="3" value="">
$('input[type=text]').autocomplete({
    source: 'suggestions.php',
    select: function(event, ui) {
        // here I need the input element that have triggered the event
    }
});

我为source参数使用匿名函数,其中$(this)引用了功能,而不是触发它的元素。我不得不使用$(this.element).

最终代码的结尾与此类似(我出于演示目的简化了它):

$( ".regionsAutocomplete" ).autocomplete({
    source: function(request, response){
        //The next line is the important one for this example
        var input = this.element;
        $(input).css('color','red');
        var data = {'foo':'bar'};
        $.ajax({
            'url': ajaxurl,
            'data': data,
            'method': "POST",
            'dataType': "json",
            'success': function(data) {
                response(data);
            }
        });
    }
});

尝试使用 $(this)

$('input[type=text]').autocomplete({
    source: 'suggestions.php',
    select: function(event, ui) {
        // here I need the input element that have triggered the event
        alert($(this).attr('name'));
    }
});
您可以使用

$(this)event.target

然后,您可以使用$(this).prop('name')event.target.name获取名称。

演示

使用 $(this)

 select: function(event, ui) {
        $(this).attr('name');
    }

我所知,对于此示例,您不需要$()this工作得很好,因为名称是一个定义的属性。

this.name

相关内容

  • 没有找到相关文章

最新更新