javascript отменить отправку формы

Код 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-форма:

74a02cedb1a28759d62ab247f85993ac

после обработки POST данные ЭД вы делаете небольшой

93b0ee18c136bf7b40f3192537d83c59

как вы можете видеть данные формы 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.

Источник

f2409a04b785f39f066901bb9f243868

На этом уроке мы рассмотрим, как можно отменить стандартные действия браузера, которые происходят, когда пользователь взаимодействует с некоторыми элементами веб-страницы. Также узнаем как отмена стандартного действия, которое выполняет браузер, влияет не его всплытие.

Действия браузера по умолчанию

Имеется много различных событий, при наступлении которых браузер выполняет определённые стандартные действия:

Отмена стандартного действия браузера

Отмена стандартного действия браузера осуществляется посредством вызова метода preventDefault в обработчике события.

javascript sample event prevent default

javascript event prevent default

Возможность отменять стандартные действия браузера очень часто применяются перед отправкой формы на сервер. Она используется для того чтобы проверить правильность заполнения формы с помощью скриптов JavaScript.

Влияет ли отмена стандартного действия, которое выполняет браузер, на его всплытие

В этом разделе мы рассмотрим следующий вопрос: «Влияет ли на всплытие события то, что мы отменили выполнение стандартного действия браузера, которое с ним связано?»

Чтобы разобраться в этом вопросе, давайте рассмотрим следующий пример:

javascript sample event prevent default bubble

Следовательно, отмена стандартного действия браузера для некоторого события не влияет на всплытие пузырька (события), т.е. они выполняются не зависимо друг от друга

В ситуациях, когда Вам необходимо отменить стандартное действие браузера и всплытие события (пузырька), можно использовать следующий код:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • javascript как скрыть форму
  • javascript запуск приложения на стороне клиента