На «Отмена» подтвердить () все еще позволяет форму для отправки - PullRequest
0 голосов
/ 03 мая 2018

function next() {
  return confirm('Are you sure you want to Foo');
}
<form method="GET" action="/foo" onsubmit="next()">
  <input type="hidden" name="delete" value={{$foo} />
  <button class="btn btn-warning" type="submit"> Foo</button>
</form>

Я пытаюсь дать пользователю возможность убедиться, что он хочет отправить форму. В настоящее время приведенный выше код показывает всплывающее окно подтверждения, но форма будет отправлена ​​независимо от того, нажата ли кнопка «ОК» или «Отмена».

Насколько я понимаю, «Подтверждение ()» заключалось в том, что, если нажать «Отмена», отправка формы будет остановлена.

Как работает Confirm () и как его лучше реализовать?

1 Ответ

0 голосов
/ 03 мая 2018

Вам необходимо предшествовать next() с return в вашем HTML:

function next() {
  return confirm('Are you sure you want to Foo');
}
<form method="GET" action="/foo" onsubmit="return next()">
  <input type="hidden" name="delete" value={{$foo} />
  <button class="btn btn-warning" type="submit"> Foo</button>
</form>

Чтобы остановить отправку, обработчик onsubmit должен вернуть false, который вы пропустили. confirm() возвращает false, когда модал отклонен.

...