У меня есть элемент <form>
, окружающий несколько входов:
<form>
<div class="tr" id="widget306">
<div class="td col-grab">
<button type="button" class="button grab formwidget" id="widget611">m</button>
</div>
<div class="td col-name">
<input type="text" name="name" value="target volume profile 1" id="widget607" class="formwidget textbox">
</div>
<!-- ... etc ... -->
</div>
</form>
Я хотел бы вызвать событие отправки в форме, когда пользователь нажимает клавишу ввода, фокусируясь на элементе (стандартное поведение для элементов ввода, заключенных в тег <form>
), но когда я нажимаю клавишу ввода, ничего не происходит ( скрипка ). Если я удаляю все элементы ввода, кроме одного, код работает, и я получаю ожидаемое поведение нажатия клавиши ВВОД и запуска отправки формы ( fiddle ).
Как получить желаемое поведение (нажатие клавиши ввода отправляет форму) в первом примере, где у меня есть несколько форм?
Примечание. Такое же поведение я обнаружил в Safari 5.1, Chrome 17, Firefox 9 и IE 9.
Разъяснение: Я знаю, что могу просто добавить немного Javascript, но я бы хотел решить эту проблему с помощью только разметки.
Обновление: , как некоторые из вас любезно отметили, я могу получить желаемое поведение, добавив <input type=submit>
. Проблема в том, что я не хочу, чтобы пользователь видел кнопку отправки. Я не могу просто установить для display
значение none
, потому что браузеры не будут отправлять при нажатии return, поэтому я позаимствовал у QUnit и установил следующее:
HTML:
<input type=submit class=hide-me />
CSS:
.hide-me {
position: absolute;
left: -10000px;
top: -10000px;
}