Я использую jQuery для выполнения перезагрузки страниц на основе AJAX на ссылках – они вызывают окно «Загрузка …», а затем закрывают его, когда содержимое возвращается и загружает контент. Это работает точно так, как ожидалось.
У меня есть несколько различных форм в моем проекте, которые я хотел бы представить с использованием того же метода – в представлении создайте окно «Загрузка …» и затем закройте его, когда содержимое вернется. Есть ли способ сделать это без написания пользовательской функции для каждой формы? Образцы, которые я видел, требуют, чтобы вы захватили и закодировали каждое поле формы и передали его в методе ajax. В некоторых формах есть только несколько полей, у других – много, поэтому это был бы громоздкий процесс. Я бы хотел, чтобы он просто захватил все поля в форме и отправил их под именами полей.
Любое понимание этого было бы высоко оценено!
Похоже, вы ищете что-то вроде .serialize()
. Это в основном утилита jQuery для кодирования элементов формы для вызова AJAX или строки запроса GET.
Используя это, вы получите что-то похожее на myinput=somevalue&myotherinput=someothervalue
основанное на свойствах имени ваших элементов формы. Вы можете использовать это в любом вызове, который вы делаете против своего сервера, если они распознают формат (например, что-то вроде данных JSON или скалярной строки).
На самом деле это довольно просто: вы можете сделать это:
$('form').serialize();
очевидно, вы хотите отправить ему свою форму, но если вы выберете сериализацию после выбора тега формы, она будет сериализовать форму для вас. Затем вы можете использовать это в своем вызове ajax.
вы можете использовать serialize()
таким образом
$('#formId').serialize();
Возможно, одним из способов может быть использование функции $ .serialize () . Вы можете написать функцию для выполнения при отправке формы. Например, если у вас есть три формы, отобранные id «form1», «form2» и «form3»:
$(document).ready(function() { $('#form1, #form2, #form3').submit(sendData); }); function sendData() { var dataString=$(this).serialize(); $.ajax({ url: "url_to_send.php", data: dataString }); return false; }