2010-03-26 1 views
0

Ma fonction ci-dessous appelle une vue partielle après qu'un utilisateur a entré une chaîne de filtrage dans la zone de texte '#DocId'. Lorsque l'utilisateur a fini de taper, la vue partielle est affichée avec des données filtrées. Étant donné que ma zone de texte doit être dans la vue partielle, lorsque l'utilisateur a terminé d'entrer une chaîne filtrée et que les données filtrées sont affichées, la zone de texte est réinitialisée et les données entrées par l'utilisateur sont perdues. Comment puis-je redéfinir la valeur de la zone de texte sur la chaîne entrée par l'utilisateur après l'affichage de la vue partielle?Après .load() Réinitialiser la zone de texte avec la valeur saisie par l'utilisateur à l'aide de JavaScript et jQuery

Je suis assez sûr que j'ai besoin d'utiliser .val() mais je n'arrive pas à faire fonctionner cela.

$(function() { 
    $('#DocId').live('keyup', function() { 
     clearTimeout($.data(this, 'timer')); 
     var val = $(this).val(); 
     var wait = setTimeout(function() { $('#tableContent').load('/CurReport/TableResults', { filter: val }, 500) }, 500); 
     $(this).data('timer', wait); 
    }); 
}); 

Merci,

Aaron

Répondre

2

Vous pouvez stocker l'ID, puis appeler ce sélecteur et réglez la valeur de retour, comme ceci:

$(function() { 
    $('#DocId').live('keyup', function() { 
     clearTimeout($.data(this, 'timer')); 
     var val = $(this).val(), id = this.id; 
     var wait = setTimeout(function() { 
      $('#tableContent').load('/CurReport/TableResults', { filter: val }); 
      $("#" + id).val(val); 
     }, 500); 
     $(this).data('timer', wait); 
    }); 
}); 

Alternativement, puisque vous Si vous passez le filtre au serveur, faites en sorte que le serveur le remplisse lors du rendu de la vue partielle, cela peut être une approche beaucoup plus directe.

Questions connexes