Событие TextChanged элемента управления TextBox может не срабатировать, если функция автозаполнения включена в Интернете Обозреватель

Предупреждение

Устаревшее и не поддерживаемое классическое приложение Internet Explorer 11 было окончательно отключено путем обновления Microsoft Edge в некоторых версиях Windows 10. Дополнительные сведения см. в разделе Часто задаваемые вопросы о прекращении поддержки программы для настольных компьютеров Internet Explorer 11.

В этой статье описывается обходной путь для решения проблемы, из-за чего событие TextChanged элемента управления TextBox не срабатывает, если функция автозаполнения включена в Интернет Обозреватель.

Исходная версия продукта: Интернет-Обозреватель
Исходный номер базы знаний: 873198

Симптомы

Если включить функцию автозаполнения форм в Microsoft Internet Обозреватель, а затем выбрать любой текст из раскрывающегося списка Автозаполнения элемента управления TextBox в веб-приложении, событие TextChanged элемента управления TextBox не срабатывает, даже если текст в элементе управления TextBox изменяется.

Причина

Это происходит из-за того, что интернет-Обозреватель не может запустить событие TextChanged элемента управления TextBox при выборе текста из раскрывающегося списка с помощью функции автозаполнения.

Обходной путь

Чтобы обойти это поведение, отключите функцию автозаполнения веб-формы. Чтобы отключить эту функцию, выполните следующие действия.

  1. В Обозреватель решений щелкните правой кнопкой мыши WebForm1.aspx и выберите пункт Просмотреть Designer.

  2. Переключитесь в представление HTML WebForm1.aspx.

  3. Найдите следующий код:

    <form id="Form1" method="post" runat="server">
    
  4. Замените код, находящийся на шаге 3, следующим кодом:

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

Действия по воспроизведению поведения

Шаг 1. Включение функции автозаполнения для форм

  1. Запустите Internet Explorer.

  2. В меню Сервис выберите пункт Свойства обозревателя. Появится диалоговое окно Свойства браузера.

  3. На вкладке Содержимое щелкните Автозавершение в разделе Личные сведения. Откроется диалоговое окно Параметры автозаполнения .

  4. В разделе Использовать автозавершение для щелкните, чтобы выбрать проверка формы, а затем нажмите кнопку ОК.

  5. В диалоговом окне Свойства браузера нажмите кнопку ОК.

Шаг 2. Создание веб-приложения, содержащего элемент управления TextBox

  1. Запустите Microsoft Visual Studio .NET.

  2. В меню Файл выберите пункт Создать и затем пункт Проект. Открывается диалоговое окно Новый проект.

  3. Выберите Проекты Visual C# в разделе Типы проектов, выберите ASP.NET веб-приложение в разделе Шаблоны, введите http://localhost/MyTestAppinполе Расположение и нажмите кнопку ОК.

  4. В Обозреватель решений щелкните правой кнопкой мыши WebForm1.aspx и выберите пункт Просмотреть Designer.

  5. В меню Вид выберите пункт Панель элементов.

  6. Добавьте элемент управления TextBox в веб-форму. По умолчанию создается элемент управления TextBox1.

  7. В окне Свойства элемента управления TextBox1 TextBox задайте для свойства AutoPostBackзначение True.

  8. В окне Свойства элемента управления TextBox1 TextBox щелкните События, а затем дважды щелкните TextChanged. Процедура TextBox1_TextChanged добавляется в представление "Код" файла WebForm1.aspx.

  9. Вставьте точку останова в процедуру TextBox1_TextChanged .

  10. В меню Файл выберите команду Сохранить все , чтобы сохранить все файлы.

Шаг 3. Сборка и отладка веб-приложения

  1. On the Build menu, click Build Solution.

  2. В меню Отладка нажмите кнопку Пуск. Откроется веб-страница WebForm1 — Microsoft Internet Обозреватель.

  3. В текстовом поле введите text1 и нажмите клавишу ВВОД. Вы заметили, что отладчик останавливается на процедуре TextBox1_TextChanged в представлении Код файла WebForm1.aspx.

  4. В меню Отладка выберите пункт Продолжить.

  5. В текстовом поле веб-страницы WebForm1 — Microsoft Internet Обозреватель введите text2 и нажмите клавишу ВВОД. Вы заметили, что отладчик снова останавливается на процедуре TextBox1_TextChanged в представлении кода файла WebForm1.aspx.

  6. В меню Отладка выберите пункт Продолжить.

  7. В текстовом поле веб-страницы WebForm1 — Microsoft Internet Обозреватель введите t. Вы заметили раскрывающийся список слов, введенных ранее.

  8. Используйте клавишу СТРЕЛКА ВНИЗ, чтобы выделить текст1, а затем нажмите клавишу ВВОД.

    Вы увидите, что событие TextChanged элемента управления TextBox1 TextBox не срабатывает.

Ссылки

Дополнительные сведения см. в разделе Свойство TextBox.AutoPostBack.