2010-08-27 10 views
1

Je travaille avec le plug-in auto-complétion jQuery UI pour mon application Web.
Cela fonctionne parfaitement bien pour mes lignes existantes, mais ne fonctionne pas tout à fait pour mes lignes ajoutées dynamiquement.jquery Saisie semi-automatique sur les lignes ajoutées dynamiquement

Voici mon code 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"); 
}); 

});

Voici le code jQuery pour le plugin autocomplete pour les lignes existantes, et pour les nouvelles lignes ajoutées, c'est le html que je suis en train d'insérer

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(); 

Comment pourrais-je faire en sorte que la saisie semi-automatique fonctionnalité fonctionne aussi pour mes nouvelles lignes ajoutées?

+0

Des idées pour y arriver? – Pritish

Répondre

1

Je vois un certain nombre de choses qui pourraient être fausses. Tout d'abord, lorsque vous ajoutez une nouvelle ligne, vous définissez le nom de l'entrée sur "newContactName", mais quand vous trouvez(), vous recherchez "name = 'newContact'". De même, lorsque vous appelez la saisie semi-automatique() sur les résultats de find(), vous devez spécifier l'option source. Étant donné que vous avez défini la source sur une fonction dans vos lignes non dynamiques, vous souhaiterez probablement la décomposer en une fonction nommée et utiliser la fonction nommée comme source dans les deux appels autocomplete().

Espérons que cela aide ...