Допустим, вы создали мастера в форме HTML. Одна кнопка возвращается назад, а другая - вперед. Поскольку кнопка « Назад» появляется первой в разметке при нажатии Enter, она будет использовать эту кнопку для отправки формы.
Пример:
<form>
<!-- Put your cursor in this field and press Enter -->
<input type="text" name="field1" />
<!-- This is the button that will submit -->
<input type="submit" name="prev" value="Previous Page" />
<!-- But this is the button that I WANT to submit -->
<input type="submit" name="next" value="Next Page" />
</form>
Я хотел бы решить, какая кнопка используется для отправки формы, когда пользователь нажимает Enter. Таким образом, при нажатии Enterмастера вы перейдете на следующую страницу, а не на предыдущую. Вы должны использовать, tabindex
чтобы сделать это?
Измените предыдущий тип кнопки на кнопку, подобную этой:
Теперь кнопка « Далее» будет использоваться по умолчанию, плюс вы также можете добавить
default
к ней атрибут, чтобы ваш браузер выделил его следующим образом:источник
default
атрибуте ты говоришь? Нет атрибута «по умолчанию», который был бы действительным: w3.org/html/wg/drafts/html/master/… (не в HTML5, HTML 4.01 Transitional / Strict, XHTML 1.0 Strict). И я не понимаю, почему лучше изменить тип ввода сsubmit
наbutton
. Вы можете иметь несколько элементов ввода типа отправки в одной форме без проблем. Я не очень понимаю, почему этот ответ так проголосовал.default
атрибут является глобальным атрибутом; перечислимый атрибут .. который связан с перечислением состояний: w3.org/html/wg/drafts/html/master/… . кроме этой точки .. кнопка аспект этого ответа не является ответом ... это « условное предложение » или запрос ( сам вопрос ).type="button"
не отправляет форму,type="submit"
делает, но изменение типа этих кнопок определенно не является решением, потому что эти кнопки должны в основном вести себя одинаково - вопрос ОП заключался в том, как сделать кнопку «Далее» по умолчанию для нажатия клавиши ввода. И есть возможное решение в принятом ответе.default
атрибута дляinput
тегов (как я уже говорил ранее), и (популярные) браузеры НЕ будут подсвечивать кнопку, имеющую этот атрибут, что означает, что нет нестандартной реализации этого атрибута - поэтому я до сих пор не знаю о чем @Wally Lawless говорил, и почему этот ответ так переоценен. Вdefault
HTML5 введен только один действительный атрибут, НО только для<track>
тега: developer.mozilla.org/en-US/docs/Web/HTML/Element/trackДайте вашим кнопкам отправки то же имя, как это
Когда пользователь нажимает Enterи запрос отправляется на сервер, вы можете проверить значение для
submitButton
своего серверного кода, который содержит коллекциюname/value
пар форм . Например, в ASP Classic :Справка: Использование нескольких кнопок отправки в одной форме
источник
Если тот факт, что первая кнопка используется по умолчанию, одинаков для всех браузеров, поместите их правильно в исходный код, а затем используйте CSS для переключения их видимых позиций.
float
например, влево и вправо, чтобы переключать их визуально.источник
Иногда предоставляемого решения @palotasb недостаточно. Есть случаи, когда, например, кнопка «Фильтр» отправляется над кнопками типа «Далее» и «Предыдущий». Я нашел обходной путь для этого: скопируйте кнопку отправки, которая должна выступать в качестве кнопки отправки по умолчанию в скрытом элементе div, и поместите ее внутри формы над любой другой кнопкой отправки. Технически это будет представлено другой кнопкой при нажатии Enter, чем при нажатии на видимую кнопку Next. Но поскольку имя и значение совпадают, в результате нет разницы.
источник
Я бы использовал JavaScript для отправки формы. Функция будет вызвана событием OnKeyPress элемента формы и обнаружит,Enter был ли выбран ключ. Если это так, он отправит форму.
Вот две страницы, которые дают методы, как это сделать: 1 , 2 . Основываясь на них, вот пример использования (на основе здесь ):
источник
Если вы действительно хотите, чтобы он работал как диалог установки, просто выделите кнопку «Далее» OnLoad.
Таким образом, если пользователь нажимает Return, форма отправляется и идет вперед. Если они хотят вернуться, они могут нажать Tabили нажать на кнопку.
источник
Это не может быть сделано с чистым HTML. Вы должны положиться на JavaScript для этого трюка.
Однако, если вы разместите две формы на странице HTML, вы можете сделать это.
Form1 будет иметь предыдущую кнопку.
Form2 будет иметь любые пользовательские вводы + кнопка «Далее».
Когда пользователь нажимает Enterв Form2, кнопка Next submit будет срабатывать.
источник
Вы можете сделать это с помощью CSS.
Next
Сначала поместите кнопки в разметку кнопкой, затемPrev
кнопкой.Затем используйте CSS, чтобы расположить их так, как вы хотите.
источник
Это работает без JavaScript или CSS в большинстве браузеров:
Firefox, Opera, Safari и Google Chrome все работают.
Как всегда, Internet Explorer является проблемой.
Эта версия работает, когда включен JavaScript:
Итак, недостаток в этом решении:
Предыдущая страница не работает, если вы используете Internet Explorer с отключенным JavaScript.
Имейте в виду, кнопка назад все еще работает!
источник
Если у вас есть несколько активных кнопок на одной странице, вы можете сделать что-то вроде этого:
Отметьте первую кнопку, которую вы хотите нажать на Enterнажатие клавиши, как кнопку по умолчанию в форме. Для второй кнопки свяжите ее с Backspaceкнопкой на клавиатуре. Код Backspaceсобытия 8.
источник
Изменение порядка вкладок должно быть все, что нужно для достижения этой цели. Будь проще.
Другой простой вариант - поместить кнопку «Назад» после кнопки «Отправить» в HTML-коде, но переместить ее влево, чтобы она отображалась на странице перед кнопкой «Отправить».
источник
Оставьте имя всех кнопок отправки одинаковым - «предыдущий».
Единственная разница заключается в
value
атрибут с уникальными значениями. Когда мы создаем скрипт, эти уникальные значения помогут нам выяснить, какая из кнопок отправки была нажата.И напишите следующую кодировку:
источник
name="perv"
?Другой простой вариант - поместить кнопку «Назад» после кнопки «Отправить» в HTML-коде, но поместить ее влево, чтобы она отображалась на странице перед кнопкой «Отправить».
Изменение порядка вкладок должно быть все, что нужно для достижения этой цели. Будь проще.
источник
В первый раз, когда я столкнулся с этим, я натолкнулся на взлом onclick () / JavaScript, когда выбор не является предысторией / следующей, которая мне все еще нравится из-за ее простоты. Это выглядит так:
При нажатии любой кнопки отправки она сохраняет требуемую операцию в скрытом поле (которое представляет собой строковое поле, включенное в модель, с которой связана форма) и отправляет форму контроллеру, который принимает все решения. В контроллере вы просто пишете:
Вы также можете немного усилить это, используя числовые коды операций, чтобы избежать синтаксического анализа строки, но если вы не играете с перечислениями, код становится менее читаемым, изменяемым и самодокументируемым, и анализ в любом случае тривиален.
источник
Из https://html.spec.whatwg.org/multipage/forms.html#implicit-submission
Следующим вводом будет type = "submit", а изменение предыдущего ввода на type = "button" должно дать желаемое поведение по умолчанию.
источник
Вот что я попробовал:
if
заявление, которое будет выполнять необходимые действия, если нажата любая из кнопок.В PHP
источник
Я столкнулся с этим вопросом, пытаясь найти ответ на одно и то же, в основном только с элементами управления ASP.NET, когда я выяснил, что у кнопки ASP есть свойство,
UseSubmitBehavior
которое позволяет вам указать, какой из них выполняет отправку.На всякий случай, если кто-то ищет способ сделать это с помощью кнопки ASP.NET.
источник
С помощью JavaScript (здесь jQuery) вы можете отключить кнопку prev перед отправкой формы.
источник
Попробуй это..!
источник
Я решил очень похожую проблему следующим образом:
Если JavaScript включен (в большинстве случаев в настоящее время), то все кнопки отправки « разлагаются » на кнопки при загрузке страницы через JavaScript (jQuery). События нажатия на « деградированную » кнопку. Типизированные кнопки также обрабатываются с помощью JavaScript.
Если JavaScript не включен, то форма подается в браузер с несколькими кнопками отправки. В этом случае нажатие Enterна
textfield
внутри формы отправит форму с первой кнопкой вместо предполагаемой по умолчанию , но, по крайней мере, форма по-прежнему пригодна для использования: вы можете отправить как с предыдущим, так и с последующим кнопками .Рабочий пример:
источник
Вы можете использовать
Tabindex
для решения этой проблемы. Также изменение порядка кнопок будет более эффективным способом для достижения этой цели.Измените порядок кнопок и добавьте
float
значения, чтобы назначить им желаемое положение, которое вы хотите показать в своемHTML
представлении.источник
Используя пример, который вы дали:
Если вы нажмете «Предыдущая страница», будет отправлено только значение «предыдущая». Если вы нажмете «Следующая страница», будет отправлено только значение «Далее».
Однако если вы нажмете Enter где-нибудь в форме, ни «предыдущая», ни «следующая» не будут отправлены.
Таким образом, используя псевдокод, вы можете сделать следующее:
источник