Можно ли сериализовать несколько форм в одном, чтобы был создан только один пост или ajax-запрос? Я искал вокруг, и это все для отправки каждой формы отдельно через post/ajax.
Сериализовать несколько форм вместе?
Ответ 1
Когда вы используете функцию jQuery serialize()
, она просто превращает вашу форму в строку в формате a=1&b=2&c=3
. Поэтому вы можете применить эту функцию к двум формам и объединить результат с помощью &
между ними и использовать результат в своем вызове ajax. Вам понадобятся некоторые проверки, чтобы ни одна строка не была пуста, когда вы выполняете конкатенацию.
Ответ 2
Если вы запустите $('form').serialize()
на странице с несколькими формами, она будет правильно сериализовать все формы в одну строку.
Чтобы включить только определенные формы, используйте $('#form1, #form2').serialize()
Ответ 3
Мне нравится ответ от Jleagle выше.
если вы более конкретно о формах, используйте
$('#detailsform,#levelForm').serialize();
вышеприведенная строка вернет строковое значение. как customId=08071992&cort=01&empId=7777
Вы можете избежать нежелательных полей, добавив атрибут disabled="disabled"
к полям ввода, иначе говоря, "отключенные" поля не будут сериализованы.