#javascript #jquery #ajax #api
#javascript #jquery #ajax #API
Вопрос:
У меня есть событие отправки, которое использует native POST
(не ajax).
<form method="post">
<button type="submit" value="submit"></button>
</form>
Как я могу запросить пользователя, когда пользователь нажал на кнопку отправки? если пользователь нажал подтвердить, то только это будет продолжаться.. Я знаю, что могу сделать это с помощью ajax, но возможно ли это сделать и с native post
помощью?
Ответ №1:
Вы можете добавить a confirm()
к submit
событию формы и вернуть его значение анонимной функции следующим образом (используя jQuery):
$('form').on('submit', function() {
return confirm('Are you sure?');
});
Комментарии:
1. могу ли я это встроить? поскольку это всего лишь одна строка
2. Ну, вы можете встроить, но это очень плохая практика. (Смотрите Комментарий, который я только что сделал в другом ответе).
3. почему плохая практика? для моей страницы регистрации у меня нет ни одного файла js. так что, возможно, просто строка, это просто для запроса сообщения о подтверждении в одну строку.
4. @MariaJane, ты прочитал ссылку, которую я отправил? w3.org/wiki/The_principles_of_unobtrusive_JavaScript
Ответ №2:
Просто сделай это
<form onsubmit="return confirm('Are you sure?')" />
Комментарии:
1. Старайтесь не рекомендовать навязчивые обработчики событий.
2. @BenM Я обнаружил, что это более прямолинейно, почему бы и нет?
3. @MariaJane w3.org/wiki/The_principles_of_unobtrusive_JavaScript
4. @MariaJane поскольку они устарели, усложняют обслуживание кода (что жизненно важно при работе в команде), а также нарушают принцип разделения интересов
5. @MariaJane Какой отличный взгляд на вещи, это обязательно сделает вас отличным разработчиком.
Ответ №3:
Хотя это не рекомендуемый способ, но он будет делать то, что вы хотите
<form method="post" onsubmit="return confirm('Do you really want to submit');">
<button type="submit" value="submit">Submit</button>
</form>
Ответ №4:
function submitForm() {
var r = confirm("Do you want to submit the form?");
if (r == true) {
document.getElementById("mainForm").submit();
} else {
return false;
}
}
<html>
<body>
<form id="mainForm" method="post" onsubmit="submitForm()">
Enter name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>
</body>
</html>
Комментарии:
1. Пожалуйста, не рекомендуйте навязчивые обработчики событий. Кроме того, ваш
if() else
блок не нужен, толькоreturn
confirm()
функция.2. Это показывает, что есть возможность получить ответ из диалогового окна подтверждения, в большинстве случаев вам нужно что-то сделать при отправке или отмене.
Ответ №5:
Да, это возможно.
<form id="f" action="demo_form.asp" onsubmit="return false">
Enter name: <input type="text" name="fname">
<input type="submit" onclick="t()" value="Submit">
</form>
<script>
function t() {
if(confirm("Yo")){
var form = document.getElementById("f")
form.submit()
}
}
</script>