在jquery ui自动完成中访问相关元素?

时间:2011-06-05 22:00:40

标签: javascript jquery html user-interface jquery-autocomplete

我正在尝试使用抽象方法使用jqueryUI的自动完成功能发送其他参数。正在使用的html的精简版本是:

<form id='employees'>
   <input class='autocomplete' name='id_number' />
</form>

我需要的是能够找到父相对于任何自动完成输入的id(因为一页上可以有多个)。我到目前为止的代码是:

    $(".autocomplete").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "search.php",
                data: {
                    form_id: // need help!
                    string: request.term
                },
                success: function( data ) {
                    // do stuff
                }
            });
        }
    });

所以我需要发送的form_id是:

$(this).parent().attr('id')

但问题是,在$ .ajax调用中的源函数内部使用$(this)会丢失对原始元素的引用,我之前没有看到任何点我可以创建变量引用原始元素。

如何获取要作为参数发送的父ID的ID?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

为什么不喜欢以下代码?它可以给你一个想法......

$(".autocomplete").each(function() {
    var ac = $(this);
    var parentId = $(this).parent().attr('id');       
    ac.autocomplete({
        minLength: 3,
        source: function(request, response) { 
            findSuggestions(request, response, 'artist', artist_cache, parentId);
        }
    });
});