L'evento TextChanged del controllo TextBox potrebbe non essere attivato se il completamento automatico è abilitato in Internet Explorer

Avviso

L'applicazione desktop Internet Explorer 11, ritirata e fuori supporto, è stata disabilitata in modo permanente tramite un aggiornamento di Microsoft Edge su alcune versioni di Windows 10. Per altre informazioni, vedere Domande frequenti sul ritiro delle app desktop di Internet Explorer 11.

Questo articolo fornisce la soluzione alternativa per risolvere il problema che l'evento TextChanged di un controllo TextBox non viene generato se la funzionalità Completamento automatico è abilitata in Internet Explorer.

Versione originale del prodotto: Internet Explorer
Numero KB originale: 873198

Sintomi

Quando si abilita la funzionalità Completamento automatico dei moduli in Microsoft Internet Explorer e quindi si seleziona qualsiasi testo dall'elenco a discesa Completamento automatico di un controllo TextBox in un'applicazione Web, l'evento TextChanged del controllo TextBox non viene generato anche se il testo nel controllo TextBox cambia.

Causa

Questo comportamento si verifica perché Internet Explorer non può generare l'evento TextChanged di un controllo TextBox quando si seleziona testo dall'elenco a discesa usando la funzionalità Completamento automatico.

Soluzione alternativa

Per risolvere questo comportamento, disabilitare la funzionalità Completamento automatico del Web form. Per disabilitare la funzionalità, seguire questa procedura:

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebForm1.aspx e quindi scegliere Visualizza Designer.

  2. Passare alla visualizzazione HTML di WebForm1.aspx.

  3. Individuare il seguente codice:

    <form id="Form1" method="post" runat="server">
    
  4. Sostituire il codice che si trova nel passaggio 3 con il codice seguente:

    <form id="Form1" method="post" runat="server" autocomplete="off">
    

Passaggi per riprodurre il comportamento

Passaggio 1: Abilitare la funzionalità Completamento automatico per i moduli

  1. Avviare Internet Explorer.

  2. Scegliere Opzioni Internet dal menu Strumenti. Verrà visualizzata la finestra di dialogo Opzioni Internet.

  3. Nella scheda Contenuto fare clic su Completamento automatico in Informazioni personali. Verrà visualizzata la finestra di dialogo Impostazioni completamento automatico .

  4. In Usa completamento automatico per fare clic per selezionare la casella di controllo Moduli e quindi fare clic su OK.

  5. Nella finestra di dialogo Opzioni Internet fare clic su OK.

Passaggio 2: Creare un'applicazione Web che contiene un controllo TextBox

  1. Avviare Microsoft Visual Studio .NET.

  2. Scegliere Nuovo dal menu File, quindi fare clic su Progetto. Verrà visualizzata la finestra di dialogo Nuovo progetto .

  3. Fare clic su Progetti Visual C# in Tipi di progetto, fare clic su ASP.NET'applicazione Web in Modelli, digitare http://localhost/MyTestAppin la casella Percorso e quindi fare clic su OK.

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse su WebForm1.aspx e quindi scegliere Visualizza Designer.

  5. Scegliere Casella degli strumenti dal menu Visualizza.

  6. Aggiungere un controllo TextBox al Web form. Per impostazione predefinita, viene creato un controllo TextBox denominato TextBox1.

  7. Nella finestra Proprietà del controllo TextBox1 TextBox impostare la proprietà AutoPostBack su True.

  8. Nella finestra Proprietà del controllo TextBox1 TextBox fare clic su Eventi e quindi fare doppio clic su TextChanged. La routine TextBox1_TextChanged viene aggiunta nella visualizzazione Codice del file WebForm1.aspx.

  9. Inserire un punto di interruzione nella routine TextBox1_TextChanged .

  10. Scegliere Salva tutto dal menu File per salvare tutti i file.

Passaggio 3: Compilare e quindi eseguire il debug dell'applicazione Web

  1. Nel menu Compila fare clic su Compila soluzione.

  2. Scegliere Avvia dal menu Debug. Viene visualizzata la pagina Web Web WebForm1 - Microsoft Internet Explorer .

  3. Nella casella di testo digitare text1 e quindi premere INVIO. Si noti che il debugger si arresta in corrispondenza della routine TextBox1_TextChanged nella visualizzazione Codice del file WebForm1.aspx.

  4. Scegliere Continua dal menu Debug.

  5. Nella casella di testo della pagina Web WebForm1 - Microsoft Internet Explorer digitare text2 e quindi premere INVIO. Si noti che il debugger si arresta nuovamente nella procedura TextBox1_TextChanged nella visualizzazione codice del file WebForm1.aspx.

  6. Scegliere Continua dal menu Debug.

  7. Nella casella di testo della pagina Web WebForm1 - Microsoft Internet Explorer digitare t. Si nota un elenco a discesa di parole digitate in precedenza.

  8. Usare il tasto freccia GIÙ per selezionare text1 e quindi premere INVIO.

    Si nota che l'evento TextChanged del controllo TextBox1 TextBox non viene generato.

Riferimenti

Per altre informazioni, vedere Proprietà TextBox.AutoPostBack.