126
задан Peter Mortensen 14 July 2019 в 15:19
поделиться

1 ответ

Первая кнопка всегда по умолчанию; это не может быть изменено. Хотя вы можете попытаться исправить это с помощью JavaScript, форма будет вести себя неожиданно в браузере без сценариев, и есть некоторые угловые случаи, о которых стоит подумать. Например, код, на который ссылается Зоран, случайно отправит форму при вводе, нажмите на , чего обычно не произойдет, и не поймает поведение IE при отправке форма для ввода нажмите на другое неполевое содержимое в форме. Поэтому, если вы нажмете какой-нибудь текст в

в форме с этим скриптом и нажмете Enter, будет отправлена ​​неправильная кнопка ... особенно опасно, если, как указано в этом примере, реальное значение по умолчанию кнопка "Удалить"!

Я бы посоветовал забыть об использовании сценариев для переназначения дефолтности. Идите в ногу с браузером и просто сначала поместите кнопку по умолчанию. Если вы не можете взломать макет, чтобы дать вам желаемый порядок на экране, вы можете сделать это, установив сначала фиктивную невидимую кнопку в источнике с тем же именем / значением, что и кнопка, которую вы хотите использовать по умолчанию:

<input type="submit" class="defaultsink" name="COMMAND" value="Save" />

.defaultsink {
    position: absolute; left: -100%;
}

(примечание: позиционирование используется для вывода кнопки за пределы экрана, потому что display: none и visibility: hidden имеют побочные эффекты, зависящие от браузера, то есть ли кнопка воспринимается как по умолчанию и отправлено ли оно.)

80
ответ дан 24 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: