I'm working with jQuery UI autocomplete plug-in for my web application.
It works perfectly fine for my existing rows, but doesn't quite work for my dynamically added rows.Here's my jquery code.
$(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='newCo开发者_如何学GontactName']").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");
});
});
This is the jQuery code for the autocomplete plugin for the existing rows, and for the newly added rows, this is the html I'm trying to insert
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();
How would I make sure that the autocomplete feature works for my newly added rows as well?
I see a couple of things that might be wrong.
First, when you add a new row, you set the input's name to "newContactName", yet when you find() you look for "name='newContact'".
Also, when calling the autocomplete() on the results of find(), you'll need to specify the source option. Since you had source set to a function in your non-dynamic rows, you'll probably want to break that out to a named function and use the named function as the source in both autocomplete() calls.
Hope this helps...
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论