Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
12th
Фев
Кнопка «Отмена» в HTML-форме
Posted by obzor under HTML
Допустим, в форме есть поля, обязательные для заполнения, и пара кнопок: Сохранить и Отмена. Как реализовать кнопку «Отмена»?
Можно сделать переход на заданный URL без отправки формы, типа так:
<form action="..." method="post">
Обязательное поле: <input type="text" name="example" required autofocus><br>
<input type="submit" value="Сохранить">
<input type="button" value="Отмена" onclick="document.location.href='...'">
</form>
В принципе, такой прием работает. Но что, если при нажатии «Отмена» нам в любом случае надо выполнить некие действия, то есть надо, чтобы нажатая кнопка определялась на самом сервере? Можно сделать две кнопки submit:
<form action="..." method="post">
Обязательное поле: <input type="text" name="example" required autofocus><br>
<input type="submit" name="save" value="Сохранить">
<input type="submit" name="cancel" value="Отмена">
</form>
Теперь на сервере можно понять, какая из кнопок была нажата:
if ( isset($_POST["cancel"] ){
// отменяем...
} else {
// сохраняем...
}
Но тут есть проблема, так как у нас имеется обязательное (атрибут required) поле example. Браузер не даст отправить форму, если пользователь не заполнит это поле. И правильно, когда нажимаем кнопку «Сохранить», поле обязано быть заполнено.
НО! Когда нажимаем кнопку «Отмена», поле может быть пустым, тут-то нам проверка уже не нужна. Но браузер все равно не даст даже нажать отмену, пока не заполним это поле.
Так вот в итоге назрел вопрос: а как это обойти? Как сделать, чтобы при нажатии одной кнопки (Сохранить) была проверка обязательных полей, но при нажатии другой (Отмена) проверка не проводилась?
А если использовать у кнопки «отмена» formnovalidate
А зачем вообще нужна кнопка Отмена? Опиши саму её сущьность, при каких обстоятельствах её нужно нажимать? Может тут нужен type=»reset»?
Да, такое решение устроит. Примерно так будет выглядеть код:
<form action="..." method="post">
Обязательное поле: <input type="text" name="example" required autofocus><br>
<input type="submit" name="save" value="Сохранить">
<input type="submit" formnovalidate name="cancel" value="Отмена">
</form>
reset сбрасывает поля, это другое. А кнопка «Отмена» нужна для отмены действия. Например, открываем какие-либо данные для редактирования и передумали их изменять. Внизу две кнопки: Сохранить и Отмена. Нажимаем «Отмена».
Случайные статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)