IE6 textBox.focus (); causando "chiamata inattesa all'accesso di metodo o properties;"

Il problema è ora resovled 🙂 Grazie per l'aiuto di tutti e l'attenzione!

Sto ricevendo l'errore JS "Chiamata inattesa all'accesso di metodo o properties;" in IE6 intermittente sulla row " oAutoCompleteTextBox.focus () ;". Speriamo che qualcuno abbia visto questo problema prima e possa fornire una visione su come risolverlo. Di seguito è riportto il context dell'uso.

$(document).ready(function () { ... oAutoCompleteTextBox = GetElement('<%=this.AutoCompleteTextBox.ClientID%>'); ... SetupDefaultValues(); } function SetupDefaultValues() { ... if(canFocus(oAutoCompleteTextBox)) { oAutoCompleteTextBox.focus(); } } 

Il mio primo post su stackoverflow – YAY!

OK, quindi il problema era che l'evento jQuery $ (document) .ready () non viene sparato su postback di async updatepanel. La soluzione è quella di rifatturare la definizione di function all'interno del ready () in una definizione esplicita di function ( cioè funzionalità pageReady () {…} ) e aggiungere il nuovo eventhandler pageReady () a evento ASP.net Sys.WebForms.PageRequestManager endRequest che viene sparato solo su postback di async.

Quindi il codice sembra così:

 Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageReady); $(document).ready(pageReady); function pageReady() { ... oAutoCompleteTextBox = GetElement('<%=this.AutoCompleteTextBox.ClientID%>'); ... SetupDefaultValues(); } function SetupDefaultValues() { ... if(canFocus(oAutoCompleteTextBox)) { oAutoCompleteTextBox.focus(); } } 

Grazie per l'aiuto di tutti e l'attenzione – ci sono voluti un po 'per capire, sono contento che sia risolto 🙂

È oAutoCompleteTextBox dichiarato globalmente? Lo stai impostando nella function document.ready ma tentando di utilizzarla in un'altra function.

sei sicuro che sia una casella di text? cosa fa la function "canfocus"? se si tratta di "text" allora si ha problemi 🙂 conosce IE6, potrebbe essere un problema di temporizzazione solo se, se si chiama setupdefaultvalues ​​in un file di avvio, oAutoCompleteTextBox.tagName, quindi se è "INPUT". settimeout di 10 secondi, posso lavorare