Я хочу отправить форму, используя jQuery. Может ли кто-нибудь предоставить код, пример или ссылку на пример?
Это зависит от того, отправляете ли вы форму нормально или через AJAX-вызов. Вы можете найти много информации на jquery.com , включая документацию с примерами. Для отправки формы в обычном режиме, проверьте submit()
метод на этом сайте. Для AJAX существует множество различных возможностей, хотя вы, вероятно, захотите использовать либо методы, ajax()
либо post()
. Обратите внимание, что post()
на самом деле это просто удобный способ вызова ajax()
метода с упрощенным и ограниченным интерфейсом.
Один из важнейших ресурсов, которым я пользуюсь каждый день, стоит отметить, как работает jQuery . В нем есть учебники по использованию jQuery, а левая навигация дает доступ ко всей документации.
Примеры:
Нормальный
$('form#myForm').submit();
AJAX
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
Следует отметить , что ajax()
и post()
методы выше , являются эквивалентными. Есть дополнительные параметры, которые вы можете добавить в ajax()
запрос для обработки ошибок и т. Д.
$.post
явно деконструируют и реконструируют форму для генерации данных для отправки. Спасибо!$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData
, Примечание: последние два, возможно, должны быть закодированы с помощью URLencodeURIComponent()
. ИЛИ - вы можете использовать кодирование JSON на обоих концах, но тогда вам нужно будет поместить данные формы в структуру данных JavaScript с вашими дополнительными данными и сериализовать их. В этом случае вы, вероятно, будете использоватьserializeArray
в форме и объединять ваши другие данные.Вам придется использовать
$("#formId").submit()
.Обычно вы вызываете это изнутри функции.
Например:
Вы можете получить больше информации об этом на веб-сайте Jquery .
источник
если у вас есть существующая форма, теперь она должна работать с jquery - ajax / post, теперь вы можете:
делай свои вещи
Обратите внимание, что для того, чтобы
serialize()
функция работала в приведенном выше примере, все элементы формы должны иметь свойname
атрибут.Пример формы:
@PtF - в этом примере данные отправляются с использованием POST, поэтому вы можете получить к ним доступ через
где dataproperty1 - это имя переменной в вашем json.
Вот пример синтаксиса, если вы используете CodeIgniter:
источник
В jQuery я бы предпочел следующее:
Но опять же, вам действительно не нужен jQuery для выполнения этой задачи - просто используйте обычный JavaScript:
источник
Из руководства: JQuery Doc
источник
Для информации,
если кто-то использует
Не как то так
Потребовалось много часов, чтобы найти меня, что submit () не будет работать так.
источник
"sumit"
делает неясным, была ли опечатка неуместной в ответе или была связана с проблемой. Вы имеете в виду, что кнопка с именем"submit"
портит jquery форму submit ()? Или вы имеете в виду проблему в том, что вы дали название кнопки submit вместо стандартногоtype="submit"
?Используйте его для отправки формы с помощью jquery. Вот ссылка http://api.jquery.com/submit/
источник
button
к кнопке тип , чтобы форма не отправлялась (поскольку не все браузеры одинаково обрабатывают кнопки без типов).это отправит форму с preloader:
У меня есть хитрость, чтобы сделать пост данных формы преобразованным случайным методом http://www.jackart4.com/article.html
источник
Смотрите события / отправить .
источник
Обратите внимание, что если вы уже установили прослушиватель события submit для своей формы, внутренний вызов метода submit ()
не будет работать, так как он пытается установить новый приемник событий для события отправки этой формы (что не удается). Таким образом, вам нужно получить доступ к самому элементу HTML (развернуть из jQquery) и напрямую вызвать submit () для этого элемента:
источник
Вы также можете использовать плагин формы jquery для отправки с использованием ajax:
http://malsup.com/jquery/form/
источник
источник
Обратите внимание, что в Internet Explorer есть проблемы с динамически создаваемыми формами. Форма, созданная таким образом, не будет отправлена в IE (9):
Чтобы заставить его работать в IE, создайте элемент формы и прикрепите его перед отправкой следующим образом:
Создание формы, как в примере 1, а затем ее присоединение не будет работать - в IE9 выдается ошибка JScript
DOM Exception: HIERARCHY_REQUEST_ERR (3)
Реквизит Томми W @ https://stackoverflow.com/a/6694054/694325
источник
Решения до сих пор требуют, чтобы вы знали идентификатор формы.
Используйте этот код для отправки формы без необходимости знать идентификатор:
Например, если вы хотите обработать событие нажатия кнопки, вы можете использовать
источник
Если кнопка расположена между тегами формы, я предпочитаю эту версию:
источник
Вы можете использовать это так:
ИЛИ
источник
IE трюк для динамических форм:
источник
Мой подход немного отличается. Измените кнопку на кнопку отправки и затем нажмите
источник
Он будет публиковать данные формы на ваше имя файла через AJAX.
источник
Я рекомендую универсальное решение, поэтому вам не нужно добавлять код для каждой формы. Используйте плагин формы jquery (http://jquery.malsup.com/form/) и добавьте этот код.
источник
Вы можете сделать это так:
источник
Я также использовал следующее для отправки формы (без фактической отправки) через Ajax:
источник