2009-05-05 10 views
3

J'ai un champ de saisie semi-automatique jQuery sur un formulaire Web ASP.Net et tout fonctionnait parfaitement jusqu'à maintenant. J'ai aussi un DropDownList que j'ai besoin d'allumer onSelectedIndexChanged avec AutoPostBack.jQuery Saisie semi-automatique de texte sur AutoPostBack

Lorsque j'ai modifié mon code pour effectuer l'AutoPostBack, le champ de texte contenant la saisie semi-automatique jQuery est vide. Cependant, si je regarde la source de la page, le texte est dans le champ de texte. Si je publie maintenant le formulaire, la page renverra un champ vide. Mon Google-Fu est faible sur celui-ci, car je ne pouvais pas trouver de solution de rechange pour cela.

Quelqu'un a-t-il eu des problèmes comme celui-ci avec le champ de saisie semi-automatique s'annulant sur un AutoPostBack, et comment l'avez-vous contourner?

Je peux poster du code si c'est vraiment nécessaire, mais je devrais en désinfecter beaucoup avant que je puisse en raison de la politique de l'entreprise.

+0

avez-vous ViewState activé pour l'un boîte de texte utocomplete? –

+0

Oui, je le fais. (Je suis retourné et vérifié juste pour être sûr, mais c'est seulement la boîte de saisie semi-automatique qui est vide.Tous les autres champs sont bien.) – Moose

Répondre

1

Comment le champ de saisie semi-automatique est-il initialisé? Est-ce que la chaîne vide est définie sur le chargement de la page depuis le serveur ou par le plugin jQuery de saisie semi-automatique sur document.ready?

Si le code source du plug-in met la zone de texte à une chaîne vide sur document.ready puis essayez ce qui suit:

// Store current textbox value in a var 
var temp = $('#mytextbox').val(); 

// Initialize the autocomplete plugin (winging it on the syntax) 
$('#mytextbox').autocomplete(); 

// Reset the value of the textbox. 
$('#mytextbox').val(temp); 
+0

Je pense qu'il est mis à une chaîne vide par le plugin dans le document.ready. Je n'ai pas le code devant moi, mais je suis à peu près sûr qu'il n'y a rien dans le chargement de la page qui le rétablit. Je ne me souviens pas avoir vu quoi que ce soit dans les documents de saisie semi-automatique sur l'initialisation du champ. – Moose

+0

c'est ce que je pense, jetez un oeil à travers le code source du plug-in si vous le pouvez. –

+0

si c'est le cas, essayez le code javascript/jquery ci-dessus que j'ai édité dans mon message. –

0

Si vous utilisez le plugin jQuery Autocomplete 1.1, * Révision: Id $ : jquery.autocomplete.js 15 2009-08-22 10: 30: 27Z de $

Ajouter la "autoPostBackSelection: false," dans les options Ex:

$.Autocompleter.defaults = { 
    inputClass: "ac_input", 
    resultsClass: "ac_results", 
    loadingClass: "ac_loading", 
    minChars: 1, 
    delay: 400, 
    autoPostBackSelection: false, 
    ... 

Après, annonce d ceci juste avant le "retour vrai; à la fin de la « selectCurrent() fonction

if (options.autoPostBackSelection == true) { 
     __doPostBack($input.id, ""); 
     } 

Exemple:.

selectCurrent (fonction

) {... if (options.autoPostBackSelection == true) { __doPostBack (input.id $, "");} return true;}