O evento TextChanged do controle TextBox pode não ser disparado se o AutoComplete estiver habilitado na Internet Explorer

Aviso

O aplicativo da área de trabalho desativado e sem suporte do Internet Explorer 11 está programado para ser desativado permanentemente por meio de uma atualização do Microsoft Edge em certas versões do Windows 10. Para obter mais informações, consulte Perguntas frequentes sobre a desativação do aplicativo de área de trabalho do Internet Explorer 11.

Este artigo fornece a solução alternativa para resolver o problema que o evento TextChanged de um controle TextBox não será disparado se o recurso AutoComplete estiver habilitado na Internet Explorer.

Versão original do produto: Internet Explorer
Número de KB original: 873198

Sintomas

Quando você habilita o recurso AutoComplete de formulários no Microsoft Internet Explorer e seleciona qualquer texto na lista suspensa AutoComplete de um controle TextBox em um aplicativo Web, o evento TextChanged do controle TextBox não é disparado mesmo que o texto no controle TextBox seja alterado.

Motivo

Esse comportamento ocorre porque a Internet Explorer não pode disparar o evento TextChanged de um controle TextBox quando você seleciona texto na lista suspensa usando o recurso AutoComplete.

Solução alternativa

Para contornar esse comportamento, desabilite o recurso AutoComplete do formulário Web. Para desabilitar o recurso, siga estas etapas:

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse em WebForm1.aspx e clique em Exibir Designer.

  2. Alterne para a exibição HTML de WebForm1.aspx.

  3. Localize o seguinte código:

    <form id="Form1" method="post" runat="server">
    
  4. Substitua o código localizado na etapa 3 pelo seguinte código:

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

Etapas para reproduzir o comportamento

Etapa 1: habilitar o recurso AutoComplete para formulários

  1. Inicie o Internet Explorer.

  2. No menu Ferramentas, clique em Opções da Internet. A caixa de diálogo Opções da Internet é exibida.

  3. Na guia Conteúdo , clique em AutoComplete em Informações pessoais. A caixa de diálogo Configurações do AutoComplete é exibida.

  4. Em Usar o AutoComplete para, clique para selecionar a caixa Formulários marcar e clique em OK.

  5. Na caixa de diálogo Opções da Internet , clique em OK.

Etapa 2: criar um aplicativo Web que contenha um controle TextBox

  1. Inicie o Microsoft Visual Studio .NET.

  2. No menu arquivo, aponte para novo e, em seguida, clique em Project. A caixa de diálogo New Project é exibida.

  3. Clique em Projetos do Visual C# em Tipos de Projeto, clique em ASP.NET Aplicativo Web em Modelos, digite http://localhost/MyTestAppin a caixa Localização e clique em OK.

  4. Em Gerenciador de Soluções, clique com o botão direito do mouse em WebForm1.aspx e clique em Exibir Designer.

  5. No menu Exibir , clique em Caixa de Ferramentas.

  6. Adicione um controle TextBox ao formulário Web. Por padrão, um controle TextBox chamado TextBox1 é criado.

  7. Na janela Propriedades do controle TextBox1 TextBox1, defina a propriedade AutoPostBack como True.

  8. Na janela Propriedades do controle TextBox1 TextBox1, clique em Eventos e clique duas vezes em TextChanged. O procedimento TextBox1_TextChanged é adicionado na exibição código do arquivo WebForm1.aspx.

  9. Insira um ponto de interrupção no procedimento TextBox1_TextChanged .

  10. No menu Arquivo , clique em Salvar Tudo para salvar todos os arquivos.

Etapa 3: criar e depurar o aplicativo Web

  1. On the Build menu, click Build Solution.

  2. No menu Depuração , clique em Iniciar. A página WebForm1 – Microsoft Internet Explorer Web é exibida.

  3. Na caixa de texto, digite text1 e pressione ENTER. Observe que o depurador para no procedimento TextBox1_TextChanged na exibição código do arquivo WebForm1.aspx.

  4. No menu Depuração , clique em Continuar.

  5. Na caixa de texto na página WebForm1 – Microsoft Internet Explorer Web, digite text2 e pressione ENTER. Observe que o depurador para novamente no procedimento TextBox1_TextChanged na exibição de código do arquivo WebForm1.aspx.

  6. No menu Depuração , clique em Continuar.

  7. Na caixa de texto na página WebForm1 – Microsoft Internet Explorer Web, digite t. Você nota uma lista suspensa de palavras que você digitou anteriormente.

  8. Use a tecla SETA PARA BAIXO para selecionar texto1 e pressione ENTER.

    Você vê que o evento TextChanged do controle TextBox1 TextBox1 não é acionado.

Referências

Para obter mais informações, consulte Propriedade TextBox.AutoPostBack.