Es posible que el evento TextChanged del control TextBox no se active si Autocompletar está habilitado en Internet Explorer

Advertencia

Se ha programado la deshabilitación permanente de la aplicación de escritorio retirada y sin soporte de Internet Explorer 11 a través de una actualización de Microsoft Edge en ciertas versiones de Windows 10. Para obtener más información, consulte Preguntas frecuentes sobre la retirada de la aplicación de escritorio de Internet Explorer 11.

En este artículo se proporciona la solución alternativa para solucionar el problema por el que el evento TextChanged de un control TextBox no se desencadena si la característica Autocompletar está habilitada en Internet Explorer.

Versión original del producto: Internet Explorer
Número de KB original: 873198

Síntomas

Al habilitar la característica Autocompletar de formularios en Microsoft Internet Explorer y, a continuación, selecciona cualquier texto de la lista desplegable Autocompletar de un control TextBox en una aplicación web, el evento TextChanged del control TextBox no se desencadena aunque cambie el texto del control TextBox.

Causa

Este comportamiento se produce porque Internet Explorer no puede desencadenar el evento TextChanged de un control TextBox al seleccionar texto de la lista desplegable mediante la característica Autocompletar.

Solución alternativa

Para evitar este comportamiento, deshabilite la característica Autocompletar del formulario web. Para deshabilitar la característica, siga estos pasos:

  1. En Explorador de soluciones, haga clic con el botón derecho en WebForm1.aspx y, a continuación, haga clic en Ver Designer.

  2. Cambie a la vista HTML de WebForm1.aspx.

  3. Busque el siguiente código:

    <form id="Form1" method="post" runat="server">
    
  4. Reemplace el código que se encuentra en el paso 3 por el código siguiente:

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

Pasos para reproducir este comportamiento

Paso 1: Habilitar la característica Autocompletar para formularios

  1. Inicie Internet Explorer.

  2. En el menú Herramientas, haga clic en Opciones de Internet. Aparecerá el cuadro de diálogo Opciones de Internet.

  3. En la pestaña Contenido , haga clic en Autocompletar en Información personal. Aparece el cuadro de diálogo Configuración de Autocompletar .

  4. En Usar Autocompletar para, haga clic para activar la casilla Formularios y, a continuación, haga clic en Aceptar.

  5. En el cuadro de diálogo Opciones de Internet, haga clic en Aceptar.

Paso 2: Crear una aplicación web que contenga un control TextBox

  1. Inicie Microsoft Visual Studio .NET.

  2. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto. A continuación aparece el cuadro de diálogo Nuevo proyecto.

  3. Haga clic en Proyectos de Visual C# en Tipos de proyecto, haga clic en ASP.NET aplicación web en Plantillas, escriba http://localhost/MyTestAppin el cuadro Ubicación y, a continuación, haga clic en Aceptar.

  4. En Explorador de soluciones, haga clic con el botón derecho en WebForm1.aspx y, a continuación, haga clic en Ver Designer.

  5. En el menú Ver , haga clic en Cuadro de herramientas.

  6. Agregue un control TextBox al formulario web. De forma predeterminada, se crea un control TextBox denominado TextBox1.

  7. En la ventana Propiedades del control TextBox1 TextBox, establezca la propiedad AutoPostBack en True.

  8. En la ventana Propiedades del control TextBox1 TextBox, haga clic en Eventosy, a continuación, haga doble clic en TextChanged. El procedimiento TextBox1_TextChanged se agrega en la vista Código del archivo WebForm1.aspx.

  9. Inserte un punto de interrupción en el procedimiento de TextBox1_TextChanged .

  10. En el menú Archivo , haga clic en Guardar todo para guardar todos los archivos.

Paso 3: Compilación y depuración de la aplicación web

  1. On the Build menu, click Build Solution.

  2. En el menú Depurar , haga clic en Iniciar. Aparece la página Web WebForm1 - Microsoft Internet Explorer .

  3. En el cuadro de texto, escriba text1 y presione ENTRAR. Observe que el depurador se detiene en el procedimiento TextBox1_TextChanged en la vista Código del archivo WebForm1.aspx.

  4. En el menú Depurar , haga clic en Continuar.

  5. En el cuadro de texto de la página WebForm1 - Microsoft Internet Explorer , escriba text2 y presione ENTRAR. Observe que el depurador se detiene de nuevo en el procedimiento TextBox1_TextChanged en la vista de código del archivo WebForm1.aspx.

  6. En el menú Depurar , haga clic en Continuar.

  7. En el cuadro de texto de la página WebForm1 - Microsoft Internet Explorer , escriba t. Verá una lista desplegable de palabras que escribió anteriormente.

  8. Use la tecla FLECHA ABAJO para seleccionar text1 y, a continuación, presione ENTRAR.

    Verá que el evento TextChanged del control TextBox1 TextBox no se desencadena.

Referencias

Para obtener más información, vea Propiedad TextBox.AutoPostBack.