2010-10-04 5 views
2

J'essaie d'utiliser la fonctionnalité de saisie semi-automatique de JQuery pour mettre à jour plusieurs champs sur une page Web ASP.NET. La zone de texte individuelle fonctionne parfaitement, mais je n'arrive pas à comprendre comment mettre à jour plusieurs zones de texte sur la page une fois que l'utilisateur sélectionne. J'ai lu beaucoup de suggestions ici que l'état j'ai besoin d'implémenter un gestionnaire de résultat, mais mon intellisense ne montre pas cela comme option, et IE j'obtiens une erreur de JS disant que l'objet ne soutient pas cette méthode.JQuery AutoComplete mise à jour de plusieurs champs ASP.NET

Je suis un lien vers jquery-1.4.2.min.js et jquery-ui-1.8.5.custom.min.js

Voici mon code:

$(function() { 

     $("#Street1").autocomplete({ 

      source: function (request, response) { 
       $.ajax({ 
        url: "/address/FindAddress", type: "POST", dataType: "json", 
        data: { startAddress: request.term }, 

        success: function (data) { 

         response($.map(data, function (item) { 
          return { label: item.DisplayText, value: item.ValueText, id: item.ID } 
         })) 
        } 
       }) 

      } /* End source: function */ 

     }) 
    .result(function (event, data, formatted) { 
     $("#Street2").val("test"); 
     }) 

     /* end Autocomplete */ 


    }); /* Function */ 

Répondre

4

Dans ce cas, vous voudriez le select handler, comme ceci:

$("#Street1").autocomplete({ 
    source: function (request, response) { 
    $.ajax({ 
     url: "/address/FindAddress", type: "POST", dataType: "json", 
     data: { startAddress: request.term }, 
     success: function (data) { 
     response($.map(data, function (item) { 
      return { label: item.DisplayText, value: item.ValueText, id: item.ID } 
     })); 
     } 
    }); 
    }, 
    select: function(event, ui) { 
    $("#Street2").val(ui.item.label); //or ui.item.value 
    } 
}); 

Je ne sais pas si vous voulez que le label, value ou id dans là, il suffit d'utiliser ui.item.whatever. En utilisant select, quelle que soit la valeur choisie, vous pouvez également remplir le champ #Street2.

Questions connexes