Меню

Jquery submit form не работает

Не работает jquery submit у формы

Всем привет. Мало времени, но решил описать детскую проблему, которая приключилась со мной сегодня.

В общем делал я антиспам защиту для очередного сайта и нужно было банально закинуть почти готовый код + вызов события .submit() для формы , если условия совпадает и передача данных на сервер, чтоб там проверить поля на спам.

В этой краткой статье я покажу вам почему может не работать jquery submit или .submit(), а также в качестве бонуса покажу пример как делать отправку данных с формы через яваскрипт, например по нажатию на ссылку.

Вернемся к моей проблеме.

Код javascript, для вызова события submit у формы, простой:

Как вы поняли XX.closest(«form»).submit(); это и есть мой запуск события submit.

Html код тоже стандартный:

Ничто не предвкушало беды, нооооо . увы форма не захотела сабмититься, сабмит формы не работает.

Код проверенный по сто раз, все рабочее, но не судьба.

В общем решение проблемы:

надо удалить вот этот код name=»submit» у кнопки отправки комментария.

Переделав форму под такой вариант:

У меня все заработало. Да, и вдогонку хочу сказать, если вы делаете отправку формы по нажатию на ссылку, а в вашей форме параллельно есть кнопка , возможно даже скрытая, — то у вас submit также работать не будет 🙂

Как сделать submit формы на javascript

Как дополнения к этому посту, хочу показать вам маленький код, который покажет вам, как легко и просто сделать отправку формы на яваскрипт.

JavaScript код на jQuery:

Вот и все. Проблема решена.

Если этот пост был вам полезный – поделитесь им со своими друзьями в соц. сетях:

Используя ваш код (jQuery) не работает отправка формы по ссылке. Подскажите в чем еще может быть причина.

Добрый день.
1) отключен jQuery, или подключена очень старая версия
2) ошибка в файле яваскрипт, можно посмотреть через дебагер

Источник

Не работает событие onsubmit у формы

В результате проверки полей не происходит и форма отправляется всегда.

P.S. На этой же странице расположена другая форма, на ней событие срабатывает и происходит проверка. Не пойму в чем дело. Подскажите, пожалуйста.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Событие onSubmit, проблема области видимости
Добрый день! Как работать с переменными, которые находятся внутри onsubmit(form:NgForm) < . >.

Onsubmit не работает в Firefox
Добрый день. Делаю сайт atlas.host1652635.hostland.pro/ Отправку формы делаю по 7

Решение

Использовать onclick внутри html-тегов — это плохая практика. Убираете из тега . Только поля. Как такое может быть? Это скрипт так повлиял?

Добавлено через 17 минут
Перенесла код в другое место, все теги появились. Но проверки полей так и не происходит. Сразу отправляет.

Вы меня окончательно запутали.

Добавлено через 1 минуту
Вы используете какой-то фреймворк? Точно ли подключена библиотека jQuery? Консоль открыта? Если да, то есть ли ошибки? Если нет, то откройте её и проверьте.

Перенесла подключение библиотеки в шапку. Ошибок нет, код не работает.

Добавлено через 4 минуты
Извиняюсь, частично заработала) При пустых полях форма не отправляется. Но не появляется окошка с сообщением о том какие поля не заполнены.

Добавлено через 2 часа 48 минут
Разобралась со всем. Спасибо огромное за помощь!

Читайте также:  Чем отремонтировать металлическую трубу отопления

Событие keypress для формы не работает.
Есть форма windowsform на ней есть некоторые обьекты. Есть событие KeyPress и метод OnKeyDown() для.

Не работает код в модуле, содержащий событие формы
Студия ругается на это Form1.RichTextBox1.LinkClicked Namespace Rich Module Settings .

Не работает событие при закрытие дочерней формы
Добрый день, не могу решить данную проблему. При закрытии дочерней формы должны оставаться данные.

Из дочерней формы убрать событие из объекта главной формы (а потом обратно добавить)
Есть основная форма, которое я называю главной формой. Создаю дочернюю форму — «Настройки», на.

Какое свойство (событие) формы отвечает за «отображение» формы на экране?
На открытие базы поставлено открытие формы «Главная». На открытие формы «Главная» поставлен макрос.

Onsubmit
Товарищи, подскажите пожалуйста простенький код для события OnSubmit под вебом (соответственно.

Источник

$.submit() не работает

Это такая простая вещь, или так я думал. Но я просто не понимаю, почему это происходит…

.submit() jQuery .submit() . Кажется, достаточно просто – передайте ему функцию, которая служит слушателем. Не передавайте ничего, и он вызывает .trigger(‘submit’) . Но это была огромная головная боль для меня в течение последних 24 часов.

В основном то, что я пытаюсь сделать, это построить простой скрипт проверки. Пользователь нажимает кнопку отправки в форме, запускает функцию для проверки входных данных, и, если все это хорошо в мире, форма отправляется (по умолчанию, без фантазии ajax в этом сценарии). Проблема возникает при попытке вызвать .submit либо для объекта jQuery, либо для простого элемента ole HTML DOM. Я узнал, что jQuery убивает родной .submit в HTMLFormElement, поэтому имеет смысл, почему это не работает (я думаю, но это кажется немым). Но… почему бы не .trigger(‘submit’) jQuery .trigger(‘submit’) (или .submit() )?

Пример (или взглянуть на скрипт):

Я нашел обходное решение, вызвав форму с использованием .call() в прототипе HTMLFormElement, но зачем мне это делать?

Зачем? Зачем? Зачем?

Вы назвали вашу кнопку submit , поэтому form.submit теперь является кнопкой, а не функцией отправки.
Другими словами, вы только что удалили родную функцию отправки и заменили ее на свою кнопку, поэтому вы получаете ошибку “объект не является функцией”.

Измените имя кнопки на другое, кроме как submit , и оно будет работать.

Источник

Form Submit jQuery does not work

I have that form

and that Popup from jQuery Mobile

with my jQuery Code

The popup shows up but the form submit does not work. Does someone have any ideas?

10 Answers 10

The NUMBER ONE error is having ANYTHING with the reserved word submit as ID or NAME in your form.

If you plan to call .submit() on the form AND the form has submit as id or name on any form element, then you need to rename that form element, since the form’s submit method/handler is shadowed by the name/id attribute.

Several other things:

As mentioned, you need to submit the form using a simpler event than the jQuery one

BUT you also need to cancel the clicks on the links

Why, by the way, do you have two buttons? Since you use jQuery to submit the form, you will never know which of the two buttons were clicked unless you set a hidden field on click.

Читайте также:  Не работает стоп сигнал ваз 2107 схема

Judging from your comments, I think you really want to do this:

Because when you call $( «#form_id» ).submit(); it triggers the external submit handler which prevents the default action, instead use

When you call the dom element’s submit method programatically, it won’t trigger the submit handlers attached to the element

The submit event is sent to an element when the user is attempting to submit a form. It can only be attached to elements. Forms can be submitted either by clicking an explicit , , or , or by pressing Enter when certain form elements have focus.

So basically, .submit is a binding function, to submit the form you can use simple Javascript:

Since every control element gets referenced with its name on the form element (see forms specs), controls with name «submit» will override the build-in submit function.

Which leads to the error mentioned in comments above:

Uncaught TypeError: Property ‘submit’ of object # is not a function

As in the accepted answer above the simplest solution would be to change the name of that control element.

However another solution could be to use dispatchEvent method on form element:

if there is one error in the the submit function,the submit function will be execute. in other sentences prevent default(or return false) does not work when one error exist in submit function.

If you are doing form validation such as

Double check you are returning true. This seems simple but I had

When the form was correct it was not being corrected by validateForm and so not being submitted as finalReturn was still initialized to false instead of true. By the way, above code works nicely with address, city, state and so on.

Don’t forget to close your form with a . That stopped submit() working for me.

Alright, this doesn’t apply to the OP’s exact situation, but for anyone like myself who comes here facing a similar issue, figure I should throw this out there— maybe save a headache or two.

If you’re using an non-standard «button» to ensure the submit event isn’t called:

Then, when you try to access this.form in the script, it’s going to come up undefined. As I discovered, apparently anchor elements don’t have same access to a parent form element the way your standard form elements do.

In such cases, (again, assuming you are intentionally avoiding the submit event for the time-being), you can use a button with type=»button»

(Addendum 2020: All these years later, I think the more important lesson to take away from this is to check your input. If my function had bothered to check that the argument it received was actually a form element, the problem would have been much easier to catch.)

Источник

Jquery submit form не работает

Ошибка НОМЕР ОДИН имеет НИЧЕГО с зарезервированным словом submit как ID или NAME в вашей форме.

Если вы планируете вызывать .submit() в форме, И форма имеет submit в качестве идентификатора или имени любого элемента формы, то вам необходимо переименовать этот элемент формы , поскольку форма Метод / обработчик submit затеняется атрибутом name / id.

Читайте также:  Dotabuff overwolf не работает

Еще несколько вещей:

Как уже упоминалось, вам нужно отправить форму с помощью более простого события, чем jQuery.

НО также нужно отменить переходы по ссылкам

Зачем, кстати, у вас две кнопки? Поскольку вы используете jQuery для отправки формы, вы никогда не узнаете, какая из двух кнопок была нажата, если вы не установите скрытое поле при нажатии.

Судя по вашим комментариям, я думаю, вы очень хотите это сделать:

Поскольку, когда вы вызываете $( «#form_id» ).submit(); , он запускает внешний обработчик отправки, который предотвращает действие по умолчанию, вместо этого используйте

Когда вы вызываете метод submit элемента dom программно, он не запускает обработчики отправки, прикрепленные к элементу.

Событие отправки отправляется элементу, когда пользователь пытается отправить форму. Его можно прикрепить только к элементам. Формы могут быть отправлено либо путем нажатия явного , или , или нажав Enter когда определенные элементы формы имеют фокус.

По сути, .submit — это функция привязки, для отправки формы вы можете использовать простой Javascript:

Поскольку на каждый элемент управления ссылается его имя в элементе формы (см. спецификации форм), элементы управления с именем» submit «переопределят встроенную функцию отправки.

Это приводит к ошибке, упомянутой в комментариях выше:

Uncaught TypeError: свойство ‘submit’ объекта # не является функцией

Как и в принятом ответе выше, самым простым решением было бы изменить имя этого элемента управления.

Однако другим решением может быть использование метода dispatchEvent для элемента формы:

Если в функции отправки есть одна ошибка, функция отправки будет выполнена. в других предложениях предотвратить по умолчанию (или вернуть false) не работает, если в функции отправки существует одна ошибка.

Если вы выполняете проверку формы, например

Дважды проверьте, что вы возвращаете true. Это кажется простым, но у меня было

Когда форма была правильной, она не исправлялась с помощью validateForm и поэтому не была отправлена, поскольку finalReturn по-прежнему был инициализирован как false вместо true. Кстати, приведенный выше код прекрасно работает с адресом, городом, штатом и т. Д.

Не забудьте закрыть форму с помощью . Это перестало работать с submit () для меня.

Хорошо, это не относится к конкретной ситуации OP, но для любого, кто, как я, сталкивается с подобной проблемой, подумайте, что я должен выбросить это там — может быть, избавит от головной боли или двух.

Если вы используете нестандартную «кнопку», чтобы гарантировать, что событие submit не вызывается:

Затем, когда вы попытаетесь получить доступ к this.form в скрипте, он окажется неопределенным. Как я обнаружил, очевидно, что элементы привязки не имеют такого же доступа к родительскому элементу form , как ваши стандартные элементы формы.

В таких случаях (опять же, предполагая, что вы намеренно избегаете события submit на данный момент), вы можете использовать button с type=»button»

(Приложение 2020: все эти годы спустя я думаю, что более важный урок, который следует извлечь из этого, — это проверка введенных вами данных. Если бы моя функция позаботилась о том, чтобы проверить, что полученный аргумент действительно является элементом формы, проблема была бы поймать было намного легче.)

Источник

Adblock
detector