El evento TextChanged del control TextBox puede no activarse si autocompletar está habilitado en Internet Explorer
Importante
La aplicación de escritorio Internet Explorer 11 está retirada y sin soporte a partir del 15 de junio de 2022 para determinadas versiones de Windows 10.
Todavía puede acceder a sitios antiguos heredados que requieren Internet Explorer con el modo Internet Explorer en Microsoft Edge. Obtenga más información.
La aplicación de escritorio Internet Explorer 11 se redirigirá progresivamente al explorador Microsoft Edge, más rápido y seguro. En última instancia, se deshabilitará a través de Windows Update. Deshabilite IE hoy.
En este artículo se proporciona la solución alternativa para solucionar el problema de que el evento TextChanged de un control TextBox no se activa si la característica Autocompletar está habilitada en Internet Explorer.
Versión del producto original: Internet Explorer
Número KB original: 873198
Síntomas
Cuando habilita 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 activa aunque cambie el texto del control TextBox.
Causa
Este comportamiento se produce porque Internet Explorer no puede activar 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:
En el Explorador de soluciones, haga clic con el botón secundario en WebForm1.aspx y, a continuación, haga clic en Diseñador de vistas.
Cambie a la vista HTML de WebForm1.aspx.
Busque el siguiente código:
<form id="Form1" method="post" runat="server">Reemplace el código que se encuentra en el paso 3 por el siguiente código:
<form id="Form1" method="post" runat="server" autocomplete="off">
Pasos para reproducir el comportamiento
Paso 1: Habilitar la característica Autocompletar para formularios
Inicie Internet Explorer.
En el menú Herramientas, haga clic en Opciones de Internet. Aparecerá el cuadro de diálogo Opciones de Internet.
En la pestaña Contenido, haga clic en Autocompletar en Información personal. Aparece el cuadro de Configuración autocompletar.
En Usar autocompletar para, haga clic para activar la casilla Formularios y, a continuación, haga clic en Aceptar.
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
Inicie Microsoft Visual Studio .NET.
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.
Haga clic en Proyectos C# visuales en Tipos Project , haga clic en ASP.NET aplicación web en Plantillas , escriba el cuadro Ubicación y, a continuación, haga clic en
http://localhost/MyTestAppinAceptar.En el Explorador de soluciones, haga clic con el botón secundario en WebForm1.aspx y, a continuación, haga clic en Diseñador de vistas.
En el menú Ver, haga clic en Cuadro de herramientas.
Agregue un control TextBox al formulario web. De forma predeterminada, se crea un control TextBox denominado TextBox1.
En la ventana Propiedades del control TextBox1 TextBox, establezca la propiedad AutoPostBack en True.
En la ventana Propiedades del control TextBox1 TextBox, haga clic en Eventos y, a continuación, haga doble clic en TextChanged. El TextBox1_TextChanged se agrega en la vista Código del archivo WebForm1.aspx.
Inserte un punto de interrupción en el TextBox1_TextChanged procedimiento.
En el menú Archivo, haga clic en Guardar todo para guardar todos los archivos.
Paso 3: Compilar y, a continuación, depurar la aplicación web
On the Build menu, click Build Solution.
En el menú Depurar, haga clic en Inicio. Aparece la página WebForm1: Microsoft Internet Explorer.
En el cuadro de texto, escriba text1 y, a continuación, presione ENTRAR. Observe que el depurador se detiene en el TextBox1_TextChanged procedimiento en la vista Código del archivo WebForm1.aspx.
En el menú Depurar, haga clic en Continuar.
En el cuadro de texto de la página WebForm1 - Microsoft Internet Explorer Web, escriba text2 y, a continuación, presione ENTRAR. Observe que el depurador se detiene de nuevo en el TextBox1_TextChanged en la vista de código del archivo WebForm1.aspx.
En el menú Depurar, haga clic en Continuar.
En el cuadro de texto de la página WebForm1 - Microsoft Internet Explorer Web, escriba t. Observe una lista desplegable de palabras que ha escrito anteriormente.
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 produce.
Referencias
Para obtener más información, vea TextBox.AutoPostBack (propiedad).