В приложении C # / ASP.NET у меня есть форма, которая выглядит примерно так (плюс еще много, но это важно):
<form method="post" action="">
<input type="image" name="ctl15" src="cancel.gif" style="border-width:0px;" />
<!-- Server side, the above input is a System.Web.UI.WebControls.ImageButton. -->
...more extra fluff...
<input type="submit" name="Button1" value="Proceed" id="Button1" class="button"
style="width:59px;" />
</form>
Эта форма прекрасно работает в Internet Explorer и Firefox, но не работает в браузерах на основе WebKit (Safari и Chrome). Проблема в том, что когда пользователь нажимает Enter, когда в поле ввода, а не с помощью мыши нажимает на кнопку отправки, ввод изображения активируется (что в этом случае соответствует событию отмены, в точности противоположному «продолжить»). "действие, которое является естественным, учитывая рассматриваемый интерфейс).
Я хочу, чтобы при нажатии клавиши Enter активировать кнопку <input type="submit">
вместо <input type="image">
, не прерывая отправку, щелкнув изображение. Как я могу это сделать? Желательно в кросс-браузерной манере, поэтому мне не нужно больше особых случаев в коде.
Никаких решений jQuery, пожалуйста, так как это приложение не использует его (и представить совершенно новую библиотеку для такой «простой» вещи будет очень трудно продать) - хотя фондовый JavaScript прекрасно работает. Очевидно, что лучше всего было бы сделать это только с помощью HTML и CSS, но я сомневаюсь в целесообразности этого.
По сути, этот вопрос мне кажется как бы полной противоположностью HTML: Отправка формы нажатием клавиши ввода без кнопки отправки .
К сожалению, поскольку различные части пользовательского интерфейса отображаются разными классами и хранятся в отдельных файлах .aspx (в частности, <input type="image">
находится в одном месте, а <input type="submit">
в совершенно другом), переупорядочивание элементов в сгенерированный HTML на самом деле не является возможным решением.