Итак, я исследовал это прошлой ночью и почти что-то получил. Тогда этим утром я действительно где-то оказался, и вот где я оказался.
Очевидно, что стандарты W3C для отправки форм довольно слабы при описании функциональности, связанной с кнопкой Enter и отправкой форм. Кажется, они определили, что
'Когда в форме есть только одно однострочное поле ввода текста, пользовательский агент должен принять Enter в этом поле как запрос на отправку формы.'
Так что это оставляет много возможностей для мастеров браузеров. Сегодня практически все браузеры поддерживают использование клавиши Enter для отправки формы, независимо от того, содержит ли форма одно или несколько однострочных текстовых полей ввода.
Проблема, с которой я столкнулся, более или менее уникальна для IE, и только в том случае, если форма содержит один однострочный элемент управления вводом текста. По какой-то причине Microsoft решила, что когда IE отправляет такую форму, она не включает пару имя / значение кнопки отправки в теле сообщения. Тем не менее, он включает пару имя / значение кнопки, если пользователь нажимает кнопку отправки --OR-- использует клавишу ввода, а форма содержит более одного однострочного элемента управления вводом текста.
Итак, единственное решение, которое я могу придумать или найти, - это добавить второй однострочный текстовый ввод в мою форму, а затем установить стиль на
видимость: скрытый; дисплей: нет;
Моя форма теперь имеет два однострочных элемента управления вводом текста, поэтому форма будет публиковать с парой имя / значение в теле формы независимо от того, использовал ли пользователь клавишу ввода или нажал кнопку отправки.
Итак, у нас есть обходной путь, который был обнаружен разработчиками ASP.NET. Похоже, что пара ключ / значение требуется веб-формам ASP.NET для запуска события click, поэтому этот обходной путь не является чем-то новым, хотя и не моим любимым способом выполнения действий.