Question

J'ai un champ jQuery Autocomplete sur un formulaire Web ASP.Net et tout fonctionnait bien jusqu'à présent. J'ai également une liste déroulante DropDownList que j'ai besoin de déclencher onSelectedIndexChanged avec 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 poste maintenant le formulaire, la page renverra un champ vide. Mon Google-Fu est faible sur ce dernier, car je ne pouvais trouver aucune solution de contournement.

Quelqu'un at-il eu des problèmes de ce type avec le champ de saisie semi-automatique masqué sur un AutoPostBack, et comment l'avez-vous résolu?

Je peux poster du code si c'est vraiment nécessaire, mais je devrais en nettoyer une grande partie avant de pouvoir le faire en raison de la politique de l'entreprise.

Était-ce utile?

La solution

Comment le champ autocomplete est-il initialisé? S’agit-il d’une chaîne vide lors du chargement de la page depuis le serveur ou du plug-in jQuery à complétion automatique dans document.ready?

Si le code source du plug-in définit la zone de texte comme chaîne vide sur document.ready, procédez comme 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);

Autres conseils

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

Ajouter "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, ajoutez ceci juste avant le & return; true; à la fin de la fonction "selectCurrent ()".

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

Exemple:

  

function selectCurrent () {       ...         if (options.autoPostBackSelection ==   vrai) {           __doPostBack ($ input.id, "");         }         retourne vrai;       }

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top