如何在onItemSelect回调中找到jquery自动完成输入的id?

时间:2009-07-22 13:22:22

标签: javascript jquery autocomplete

我正在使用pengoworks的jquery自动完成插件:http://www.pengoworks.com/workshop/jquery/autocomplete_docs.txt

在选择条目时调用的函数中,我想找出输入元素的名称(id)。 (因为回调将用于多个自动复合。)

代码如下所示:

myCallback = function(o) {
     // I want to refer to "myInput" here - but how?
}

setup = function() {
    $('#myInput').autocomplete('blah.php', {onItemSelect: myCallback});
}

4 个答案:

答案 0 :(得分:1)

尝试将extraParams中的id传递给服务器端:

$('#myInput').autocomplete('blah.php', {onItemSelect: myCallback}, extraParams: {name: $(this).attr('id')} );

或者向blah.php添加一些id?id = someid。

然后在results数组中将其发送回回调函数。

答案 1 :(得分:1)

myCallback = function(li, $input) {
    // I need to refer to the appropriate "myXxxInput" here
    alert($input.attr('id'));
}

setup = function() {
    setupInput($('#myFirstInput'));
    setupInput($('#mySecondInput'));
}

function setupInput($input) {
    $input.autocomplete('blah.php', {onItemSelect: function(li) {
        myCallback(li, $input);} });
}

感谢此解决方案的Dylan Verheul(自动完成的作者)

答案 2 :(得分:0)

你不能只使用$(this)吗?

答案 3 :(得分:0)

你不能在回调中指定变量吗?

$('#myInput').autocomplete('blah.php', { onItemSelect: myCallback($(this)) });