动态添加行上的jquery自动完成

动态添加行上的jquery自动完成,jquery,jquery-ui,jquery-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,我正在为我的web应用程序使用jQuery UI自动完成插件。 它对我现有的行非常有效,但对我动态添加的行不太有效 这是我的jquery代码 $(function () { var tab = $("#tabs-6"); tab.find("input[name='newContactName']").autocomplete( { source: function(request, response) { var cachedRequest =

我正在为我的web应用程序使用jQuery UI自动完成插件。
它对我现有的行非常有效,但对我动态添加的行不太有效

这是我的jquery代码

$(function ()
{
    var tab = $("#tabs-6");
tab.find("input[name='newContactName']").autocomplete(
{
        source: function(request, response) {
            var cachedRequest = $(this).data("cachedRequest");
            // Previous data is cached, so new data is a subset of this
            if (cachedRequest != null && 
                    cachedRequest.length > 0 && 
                    request.term.indexOf(cachedRequest) >= 0)
            {
                ..some code..
            }
            else
            {
                var input = $(this);
                $.ajax({
                    ..some code..
                    success: function(data) 
                    {..some code..
                    }

                }); 

            }
        },
        minLength: 3,
        delay: 500
    }
);

tab.find("input[name='newContactName']").bind('autocompleteselect', function(event, ui) {
    $(this).prev("input[name='newContactId']").val(ui.item.person_id);
    }); 

/* Customizing the autocomplete suggestions box that pops up.
*/
var input1=$("input[name='newContactName']"); 
input1.each(function (){
$(this).autocomplete("widget").css("height", "10em");
$(this).autocomplete("widget").css("overflow", "auto"); 
$(this).autocomplete("widget").css("width", "210px");
});
}))

这是用于现有行的autocomplete插件的jQuery代码,对于新添加的行,这是我尝试插入的html

var html = '<tr>..first 8 td elements.. <td><input type="text" name="newContactName"> </td>'+
        ..some more td elements</tr>';

var newRow = $(html).insertAfter(row); // insert content,where row is my current row
newRow.find("td:nth-child(9) input[name='newContact']").autocomplete();
var html=“…前8个td元素…”+
…更多td元素';
var newRow=$(html).insertAfter(行);//插入内容,其中行是我的当前行
find(“td:n子(9)输入[name='newContact']”)autocomplete();

如何确保自动完成功能也适用于我新添加的行

我发现有几件事可能是错的

首先,当您添加新行时,您将输入的名称设置为“newContactName”,但当您找到()时,您将查找“name='newContact'”

另外,在对find()的结果调用autocomplete()时,需要指定source选项。由于在非动态行中将源设置为函数,因此可能需要将其分解为命名函数,并在两个autocomplete()调用中使用命名函数作为源


希望这能有所帮助……

我发现有几件事可能是错的

首先,当您添加新行时,您将输入的名称设置为“newContactName”,但当您找到()时,您将查找“name='newContact'”

另外,在对find()的结果调用autocomplete()时,需要指定source选项。由于在非动态行中将源设置为函数,因此可能需要将其分解为命名函数,并在两个autocomplete()调用中使用命名函数作为源


希望这有助于……

有什么想法可以做这件事吗?有什么想法可以做这件事吗?