Дополнительно
jQuery AJAX форма отправки
У меня есть форма с именем orderproductForm
и неопределенным количеством входов.
Я хочу сделать что-то вроде jQuery.get или ajax или что-то подобное, что вызовет страницу через Ajax и передаст все входы формы orderproductForm
.
Я полагаю, что одним из способов было бы сделать что-то вроде
jQuery.get("myurl",
{action : document.orderproductForm.action.value,
cartproductid : document.orderproductForm.cartproductid.value,
productid : document.orderproductForm.productid.value,
...
Однако я не знаю точно все входы формы. Есть ли возможность, функция или что-то еще, что просто отправляло бы ВСЕ входы формы?
880
18
Это простая ссылка:
Надеюсь, она вам поможет.
Вы можете использовать функции ajaxForm/ajaxSubmit из Ajax Form Plugin или функцию jQuery serialize.
AjaxForm:
или
ajaxForm будет отправляться после нажатия кнопки отправки. ajaxSubmit отправляется немедленно.
Serialize:
документация по сериализации AJAX находится здесь.
Еще одно аналогичное решение с использованием атрибутов, определенных на элементе формы:
Есть несколько вещей, которые вы должны иметь в виду.
1. Существует несколько способов представить в виде
Поэтому мы должны привязать к форма отправки события, не кнопки событие click. Это будет гарантировать, что наш код работает на всех устройствах и ассистивных технологий сейчас и в будущем.
2. Hijax
Пользователь не может быть включен JavaScript. А hijax картина хорошо здесь, где мы аккуратно взять под контроль формы с помощью JavaScript, но оставить ее предоставление, если JavaScript не удается.
Мы должны вытащить URL и метод от формы, поэтому если HTML изменения, мы не'т необходимость обновления на JavaScript.
3. Ненавязчивый JavaScript
Используя событие.метод preventDefault() вместо возвращает false является хорошей практикой, так как это событие пузыриться. Это позволяет другим скрипты галстук в случае, например, аналитики скриптов, которые могут быть мониторинг взаимодействия пользователей.
Скорость
Мы в идеале должны использовать внешний скрипт, а не вставляя встроенный скрипт. Можно ссылку на эту в разделе head страницы, используя тег script, или ссылку на него в нижней части страницы для скорости. Скрипт должен спокойно повысить эффективность работы пользователей, не получить в пути.
Код
Если вы согласны со всем вышесказанным, и вы хотите поймать событие Submit, и делаю это через AJAX (образец hijax), вы могли бы сделать нечто подобное:
Вы можете вручную инициировать отправку формы, когда вы хотите с помощью JavaScript, используя что-то вроде:
Редактировать:
Недавно мне пришлось сделать это, и закончили писать плагин.
Добавление данных-автоматическая отправка атрибут тега form, а затем вы можете сделать это:
В HTML
В JS
Вы также можете использовать виде FormData (но не доступны в IE):
Это, как вы используете виде FormData.
Простая версия (не отправлять изображения)
Копирование и вставка поддержки AJAX формы или всех форм на странице
Он представляет собой модифицированную версию Alfrekjv'с ответить
В JavaScript
Я хотел изменить Alfrekjv'ы ответ, но слишком сильно отклонялись от нее, поэтому решил выложить это как отдельный ответ.
Не отправляет файлы, не поддерживает кнопок, например при нажатии кнопки (включая кнопку "Submit") отправляет своего значения как данные формы, а потому, что это AJAX-запрос, нажав на кнопку отправлен не будет.
Для поддержки кнопки вы можете захватить собственно кнопку нажать вместо "отправить".
На стороне сервера, вы можете обнаружить запрос AJAX](http://davidwalsh.name/detect-ajax) с этим заголовком, что jQuery наборы
HTTP_X_REQUESTED_WITH
для PHPВ PHP
Этот код работает даже при входном файле
Мне очень понравился этот ответ по superluminary и особенно то, как он завернул это решение в на jQuery плагин. Так что спасибо superluminary за очень полезный ответ. В моем случае, я хотел, чтобы плагин, который позволит мне определить успех и ошибка обработчики событий с помощью вариантов, когда плагин инициализируется.
Так вот что я придумал:
Этот плагин позволяет мне очень легко "по-ajaxify-то" HTML-формы на странице и предоставить onsubmit, успех и ошибка обработчики событий для реализации обратной связи с пользователем статуса отправки формы. Это позволило плагин будет использоваться следующим образом:
Обратите внимание, что успех и ошибка обработчики событий получают те же аргументы, которые вы получите из соответствующего события jQuery с Аякс метод.
Я получил следующее на меня:
где
Это предполагает, пост 'URL-адрес' возвращает Ajax в виде
{успех: ложь, ошибка:'моя ошибка отображения'}
Вы можете варьировать как вам нравится. Не стесняйтесь использовать этот фрагмент.
на jQuery AJAX для отправки формы, ничего, но подать заявку, используя форму код при нажатии на кнопку
Пожалуйста, следуйте инструкции по
Шаг 1 - тега form должен иметь поля id
Кнопку, которую вы собираетесь нажать
Шаг 2 - отправить события в jQuery, который помогает представить форму. в приведенном ниже коде мы готовим запрос JSON с HTML-элемента имя.
для демо нажмите на ссылку ниже
[Как отправить форму с помощью jQuery Аякс?][1]
рассмотрите возможность использования
ближайший
Во избежание многократного виде FormData посылает:
Дон'т забудьте отвязать представить событие, пока снова прислана, Пользователь может вызвать функцию заявку более одного раза, может, он забыл что-то, или ошибка проверки.
Если вы're, используя форма.сериализовать() - вы должны дать каждый элемент формы имени такой:
И форма сериализируется такой:
Вы можете использовать это представить функцию, как показано ниже.
HTML-формы
функции jQuery:
Более подробную информацию и примеры на странице: http://www.spiderscode.com/simple-ajax-contact-form/
Это не ответ на ОП'ы вопрос, но в случае если вы можете'т использовать статические формы дом, вы можете также попробовать такой.
Просто дружеское напоминание о том, что "данные" может быть объектом, тоже:
`` $('форма#фу').подать(функция () { $.технология AJAX({ адрес: 'http://foo.bar/some-ajax-script', тип: 'пост', тип: 'в формате JSON', данных: { 'фу': 'некоторые-фу', 'бар': 'некоторые-бар' } }).всегда(функция (данных) { консоль.журнала(данные); });
возвращает false; }); ``
Я знаю, что это
библиотека jQuery
вопрос, но теперь дни с JS на ES6 все гораздо проще. Поскольку нет чистыйкод JavaScript
ответ, я думал, я мог бы добавить решение простой чистыйкод JavaScript для этого, что на мой взгляд гораздо чище, используя метод fetch()
АПИ. Этот современный способ реализует сетевые запросы. В вашем случае, поскольку у вас уже есть элемент формы, мы можем просто использовать его, чтобы построить нашу просьбу.Существует также событие submit, которое можно запустить следующим образом $("#form_id").submit(). Вы используете этот метод, если форма уже хорошо представлена в HTML. Вы'просто прочитаете страницу, заполните вводимые данные формы, а затем вызовете .submit(). При этом будут использованы метод и действие, определенные в объявлении формы, поэтому вам не нужно копировать их в свой javascript.
примеры