Domanda

Ho un campo di completamento automatico jQuery su un modulo web ASP.Net e tutto ha funzionato alla grande fino ad ora. Ho anche un DropDownList di cui ho bisogno per attivareSelectedIndexChanged con AutoPostBack.

Quando ho cambiato il mio codice per eseguire AutoPostBack, il campo di testo su cui è completato il completamento automatico jQuery torna vuoto. Tuttavia, se guardo l'origine della pagina, il testo si trova nel campo di testo. Se invio ora il modulo, la pagina restituirà un campo vuoto. Il mio Google-Fu è debole su questo, in quanto non sono riuscito a trovare alcuna soluzione alternativa per questo.

Qualcuno ha avuto problemi come questo con il campo Completamento automatico che è stato cancellato da un AutoPostBack e come hai fatto a aggirare il problema?

Posso pubblicare il codice se è davvero necessario, ma avrei bisogno di disinfettarlo molto prima di poterlo fare a causa della politica aziendale.

È stato utile?

Soluzione

Come viene inizializzato il campo di completamento automatico? È impostato per svuotare la stringa sul caricamento della pagina dal server o dal plug-in di completamento automatico jQuery su document.ready?

Se il codice sorgente per il plug-in sta impostando la casella di testo per svuotare la stringa sul documento. Prova quindi quanto segue:

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

Altri suggerimenti

Se usi il plugin 1.1 per il completamento automatico di jQuery, * Revisione: $ Id: jquery.autocomplete.js 15-22-08 2009 22: 10: 27Z joern.zaefferer $

Aggiungi " autoPostBackSelection: false, " nelle opzioni Ex:

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

Dopo, aggiungilo subito prima di " return true; alla fine della funzione " selectCurrent ().

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

Esempio:

  

funzione selectCurrent () {       ...         if (options.autoPostBackSelection ==   vero) {           __doPostBack ($ input.id, " ");         }         ritorno vero;       }

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top