2010-07-08 1 views
3

У меня есть форма с двумя кнопками отправки - одна для Отмена, а другая для сохранения значений формы в БД. Когда нажата клавиша Enter, кнопка «Отмена» отправляет форму вместо кнопки «Сохранить», представляющей форму. Как заставить кнопку «Сохранить» отправить форму при нажатии клавиши «Ввод»?Неправильная отправка формы с помощью клавиши ввода при наличии двух кнопок отправки

Thanks,

+0

Вы можете использовать кнопку сброса для Отмена – Himadri

+0

При нажатии кнопки «Отмена» пользователь должен перейти на другую страницу. Могу ли я это сделать с помощью кнопки сброса? Спасибо –

ответ

4

В вашей форме не должно быть двух кнопок отправки. Нажмите кнопку «Сохранить» и введите кнопку «Отмена» типа.

EDIT: Я собираюсь обновить этот ответ, чтобы обработать несколько вопросов, которые были подняты.

Ничего, что я видел в спецификации HTML (то есть DTD), запрещает две кнопки отправки в одной форме, но может возникнуть точная проблема, о которой упоминается ОП. В его случае, решение сделать кнопку Отмена кнопки типа и добавьте в следующем JavaScript:

<input type="button" value="Cancel" onclick="window.location.href='nextpage.html';"/> 

Здесь можно было бы заменить nextpage.html с соответствующим URL. Или, this.form.action может быть новым местом, если перенаправление относится к действию формы.

Если ОП хочет быть в безопасности и избегать JavaScript, это может быть только (возможно, стилизованная) гиперссылка.

+1

Совершенно нормально иметь несколько кнопок отправки в форме. Реальная проблема - неустойчивое поведение браузеров, когда это так. Кроме того, кнопка «Отмена» не отправит форму, если она не является кнопкой «». – zneak

+2

Да, это разрешено в соответствии с DTD, но, как вы уже сказали, браузеры не имеют возможности хорошо справляться с этим делом. Решение состояло бы в том, чтобы сохранить одну кнопку отправки и использовать JavaScript на другом (если это абсолютно необходимо). Возможно, OP может прояснить цель кнопки «Отмена». – TNi

+0

Спецификация HTML не определяет порядок активации по умолчанию для нескольких кнопок отправки, если фокус клавиатуры не находится в одном из них; он определяет поведение активации только тогда, когда фокус находится на элементе submit. не обвиняйте браузеры в том, что они не реализуют что-то, что не указано. :-) –

Смежные вопросы