.serialize()Возвращает: String
Описание: Кодирует набор элементов формы в строку для отправки.
-
версия добавлена: 1.0.serialize()
- Этот метод не принимает никаких аргументов.
Метод .serialize() создает текстовую строку в стандартном формате URL-кодирования. Он может действовать с объектом jQuery, который выбрал отдельные элементы управления формой, такие как <input>, <textarea>, и <select>: $( "input, textarea, select" ).serialize();
Однако, обычно проще выбрать саму <form> для сериализации:
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
}); В этом случае jQuery сериализует корректные элементы внутри формы. Только элементы form проверяются на содержащиеся в них элементы ввода; во всех других случаях элементы ввода, которые должны быть сериализованы, должны быть частью набора, переданного методу .serialize(). Выбор как формы, так и её потомков в наборе приведет к дублированию в сериализованной строке.
Примечание: В строку сериализуются только "корректные элементы управления". Значение кнопки отправки не сериализуется, так как форма не была отправлена с помощью кнопки. Чтобы значение элемента формы было включено в сериализованную строку, элемент должен иметь атрибут name. Значения из элементов "checkbox" и "radio" (элементы типа "radio" или "checkbox") включаются только если они выбраны. Данные из элементов выбора файла не сериализуются.
Пример:
Сериализуйте форму в строку запроса, которая может быть отправлена на сервер в запросе Ajax.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>serialize demo</title>
<style>
body, select {
font-size: 12px;
}
form {
margin: 5px;
}
p {
color: red;
margin: 5px;
font-size: 14px;
}
b {
color: blue;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<br>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select>
<br>
<input type="checkbox" name="check" value="check1" id="ch1">
<label for="ch1">check1</label>
<input type="checkbox" name="check" value="check2" checked="checked" id="ch2">
<label for="ch2">check2</label>
<br>
<input type="radio" name="radio" value="radio1" checked="checked" id="r1">
<label for="r1">radio1</label>
<input type="radio" name="radio" value="radio2" id="r2">
<label for="r2">radio2</label>
</form>
<p><tt id="results"></tt></p>
<script>
function showValues() {
var str = $( "form" ).serialize();
$( "#results" ).text( str );
}
$( "input[type='checkbox'], input[type='radio']" ).on( "click", showValues );
$( "select" ).on( "change", showValues );
showValues();
</script>
</body>
</html>