Код JavaScript, чтобы остановить отправку формы
При нажатии кнопки отправки вызывается функция проверки. У меня есть дело в форме проверки. Если это условие выполняется, я вызываю функцию с именем returnToPreviousPage ();
Я использую JavaScript и инструментарий Dojo.
Скорее возвращаясь к предыдущей странице, он отправляет форму. Как я могу прервать это представление и вернуться на предыдущую страницу?
12 ответов
Вы можете использовать возвращаемое значение функции, чтобы предотвратить отправку формы
Использовать предотвращение по умолчанию
Инструментарий Dojo
jQuery
Ванильный JavaScript
Например, если у вас есть кнопка «Отправить» в форме, чтобы остановить распространение, просто напишите event.preventDefault (); в функции, которая вызывается при нажатии кнопки подтверждения или кнопки ввода.
И здесь идет ваш JQuery
Просто используйте простой button вместо кнопки отправки. И вызовите функцию JavaScript для обработки отправки формы:
Функция внутри тега script :
Вы также можете попробовать window.history.forward(-1);
Допустим, у вас есть форма, похожая на эту
Вот javascript для функции verifyAction
Этот работает на Firefox, Chrome, Internet Explorer (край), Safari и т. Д.
Если это не так, дайте мне знать
На данный момент работает следующее (проверено в Chrome и Firefox):
Много сложных способов сделать простую вещь:
Javascript: как отменить отправку формы без возврата false?
У меня есть код отправки формы, который делает AJAX вызов & перенаправляет оттуда-если совпадение найдено.
Но, так или иначе, return false опущен & форма отправляется.
Я не хочу использовать возвращаемое значение false, & должен отменить представление для всех случаев. Есть ли для этого какой-нибудь метод jquery?
HTML
6 ответов
На странице после нажатия кнопки submit будет отправлена форма. Но я запретил контроллеру ctrlPersonalData подавать форму (return false) Пожалуйста, помогите мне отменить отправку формы после нажатия кнопки submit
Я работаю над формой с несколькими полями и, конечно же, кнопкой отправки. Как отменить отправку формы, если некоторые поля пусты? Я попытался поставить проверку javascript, input type=submit onclick=check() на кнопку отправки. Но на самом деле я хочу, чтобы страница не загружалась, чтобы вся.
Предполагая, что getLogin привязан к форме отправки button/link,, вы можете использовать preventDefault и stopPropagation
Избавиться от onSubmit=»getLogin();»
а затем использовать готовые
Если это так, добавьте обработчик щелчка и реализуйте там код, как показано ниже,
HTML:
я не знаю наверняка, сработает ли это, но я бы попробовал подстроить обработчик отправки:
но return false тоже должен работать.
Если обработчик не возвращает false, либо логика problem..or, скорее всего, ошибка, возникшая в обработчике до того, как код достигнет возврата
Как предотвратить повторную отправку формы при обновлении страницы (F5 / CTRL+R)
У меня есть простая форма, которая отправляет текст в моей таблице SQL. Проблема в том, что после того, как пользователь отправляет текст, они могут обновить страницу, и данные будут отправлены снова без повторного заполнения формы. Я мог бы перенаправить пользователя на другую страницу после отправки текста, но я хочу, чтобы пользователи оставались на той же странице.
Я помню, что читал что-то о предоставлении каждому пользователю уникального идентификатора сеанса и сравнении его с другим значением, которое решило проблему, которую я имею, но я забыл, где он находится.
18 ответов:
с помощью моего веб-сайта я сохраню сообщение в файле cookie или сеансе, перенаправлю после публикации, прочитаю файл cookie/сеанс, а затем очистите значение этой переменной сеанса или файла cookie.
Я также хотел бы отметить, что вы можете использовать подход javascript, window.history.replaceState чтобы предотвратить повторную отправку на кнопку Обновить и назад.
Я бы все равно рекомендовал подход Post/Redirect/Get, но это новое решение JS.
вы действительно должны использовать шаблон Post Redirect Get для обработки этого, но если вы каким-то образом оказались в положении, когда PRG нежизнеспособен (например, сама форма находится в include, предотвращая перенаправления), вы можете хэшировать некоторые параметры запроса, чтобы сделать строку на основе содержимого, а затем проверить, что вы ее еще не отправили.
вы можете повторно отправить форму через переменную сеанса, например
использовать заголовок и перенаправить страницу.
header(«Location:your_page.php»); вы можете перенаправить на ту же страницу или другую страницу.
когда форма обработана, вы перенаправляете на другую страницу:
вы также можете перенаправить на ту же страницу.
Если вы делаете что-то вроде комментариев и вы хотите, чтобы пользователь оставался на той же странице, вы можете использовать AJAX для обработки формы представления
довольно верный способ реализовать уникальный идентификатор в пост и кэшировать его в
тогда в вашем коде сделайте следующее:
Итак, у вас есть HTML-форма:
после обработки POST данные ЭД вы делаете небольшой
как вы можете видеть данные формы POST Эд process.php сценарий.
Этот скрипт процесс POST Эд данные и рендеринг /the/result/page сразу с:
в качестве другого решения я прошу запрос the Mozilla FireFox команда, чтобы позволить пользователям устанавливать NextPage заголовок, который будет работать как и сделать post/redirect/get шаблон устарел.
короче. Когда серверная форма процесса POST данные успешно это:
браузер, в свою очередь, когда вижу NextPage заголовок:
я думаю, что это было бы превосходно, если реализовали бы, не так ли? =)
просто перенаправьте его на ту же страницу после использования данных формы, и он работает. Я уже пробовал.
уточненная версия сообщения Moob. Создайте хэш сообщения, сохраните его как файл cookie сеанса и сравните хэши каждого сеанса.
после вставки его в базу данных, вызовите метод unset () для очистки данных.
unset ($_POST);
чтобы предотвратить вставку данных обновления, выполните перенаправление страницы на ту же страницу или другую страницу после вставки записи.
заголовок (‘Location:’.$_SERVER [‘PHP_SELF’]);
в принципе, вам нужно перенаправить с этой страницы, но это все еще может создать проблему, пока ваш интернет медленный (заголовок перенаправления с сервера)
пример базового сценария :
нажмите на кнопку Отправить дважды
на стороне клиента
в вашей html форме поставьте это:
Ps: Если вы используете форму Get, вы можете легко изменить все сообщения с GET, и это тоже работает.
Я использую эту строку javascript, чтобы заблокировать всплывающее окно с запросом на повторную отправку формы при обновлении после отправки формы.
просто поместите эту строку в нижний колонтитул вашего файла и увидеть магию
Использование шаблона Post / Redirect / Get из ответа Keverw-хорошая идея. Однако вы не можете оставаться на своей странице (и я думаю, что это было то, что вы просили?) Кроме того, это может иногда fail:
если веб-пользователь обновляется до завершения первоначальной отправки из-за задержки сервера, что приводит к дублированию запроса HTTP POST в некоторые агенты пользователей.
другой вариант будет хранить в сеансе, если текст должен быть записан в вашу базу данных SQL следующим образом:
Как говорили другие, невозможно выйти из использования post/redirect/get. Но в то же время это достаточно легко сделать, что вы хотите сделать на стороне сервера.
на странице POST вы просто проверяете пользовательский ввод, но не действуете на нем, вместо этого вы копируете его в массив сеанса. Затем вы снова перенаправляетесь на главную страницу отправки. Ваша главная страница отправки начинается с проверки наличия массива сеансов, который вы используете, и если да, то скопируйте его в локальный массив и снимите его. Оттуда вы можете действовать на него.
таким образом, вы только делаете всю свою основную работу один раз, добиваясь того, что вы хотите сделать.
Как отменить отправку формы в событии submit button onclick?
Я работаю над веб-приложением ASP.net.
Я хочу написать что-то вроде следующего:
Как мне это сделать?
13 ответов
Вам лучше это сделать.
Теперь вы можете поймать get это событие перед обратной передачей формы и остановить его от обратной передачи и сделать все ajax, что вы хотите, используя этот jquery.
вы должны изменить тип с submit на button :
затем вы получаете имя своей кнопки в javascript и связываете с ней любое действие, которое вы хотите
Вам нужно return false; :
В настоящее время я сталкиваюсь с некоторыми проблемами дублирования заказов. Не вдаваясь в подробности, у меня возник вопрос о следующем. Есть ли вероятность, что это может вызвать отправку дважды? review.save() будет обрабатывать.
Я работаю над формой с несколькими полями и, конечно же, кнопкой отправки. Как отменить отправку формы, если некоторые поля пусты? Я попытался поставить проверку javascript, input type=submit onclick=check() на кнопку отправки. Но на самом деле я хочу, чтобы страница не загружалась, чтобы вся.
Почему бы не изменить кнопку «Отправить» на обычную кнопку и в случае щелчка отправить форму, если она прошла ваши проверочные тесты?
Edit onSubmit принадлежит тегу формы.
Это просто, просто верните false;
Приведенный ниже код входит в onclick кнопки отправки с помощью jquery..
использовать onclick=’return btnClick();’
С JQuery все еще проще: работает в Asp.Net MVC и Asp.Core
Похожие вопросы:
Как получить Element(button/input) отправку формы в событии отправки формы?
Когда я использую метод DOM form submit для отправки формы, обработчик события jQuery submit не вызывается, хотя w3c говорит: It performs the same action as a submit button. Я попробовал с jQuery.
В настоящее время я сталкиваюсь с некоторыми проблемами дублирования заказов. Не вдаваясь в подробности, у меня возник вопрос о следующем. Есть ли вероятность, что это может вызвать отправку дважды.
Я работаю над формой с несколькими полями и, конечно же, кнопкой отправки. Как отменить отправку формы, если некоторые поля пусты? Я попытался поставить проверку javascript, input type=submit.
На этом уроке мы рассмотрим, как можно отменить стандартные действия браузера, которые происходят, когда пользователь взаимодействует с некоторыми элементами веб-страницы. Также узнаем как отмена стандартного действия, которое выполняет браузер, влияет не его всплытие.
Действия браузера по умолчанию
Имеется много различных событий, при наступлении которых браузер выполняет определённые стандартные действия:
Отмена стандартного действия браузера
Отмена стандартного действия браузера осуществляется посредством вызова метода preventDefault в обработчике события.
Возможность отменять стандартные действия браузера очень часто применяются перед отправкой формы на сервер. Она используется для того чтобы проверить правильность заполнения формы с помощью скриптов JavaScript.
Влияет ли отмена стандартного действия, которое выполняет браузер, на его всплытие
В этом разделе мы рассмотрим следующий вопрос: «Влияет ли на всплытие события то, что мы отменили выполнение стандартного действия браузера, которое с ним связано?»
Чтобы разобраться в этом вопросе, давайте рассмотрим следующий пример:
Следовательно, отмена стандартного действия браузера для некоторого события не влияет на всплытие пузырька (события), т.е. они выполняются не зависимо друг от друга
В ситуациях, когда Вам необходимо отменить стандартное действие браузера и всплытие события (пузырька), можно использовать следующий код: