Heim > Artikel > Web-Frontend > JQuery-Formulardaten in JSON-Daten umwandeln
Mit der Entwicklung der Front-End-Entwicklung haben immer mehr Websites und Anwendungen die Formularübermittlungsmethode von herkömmlichen synchronen Anforderungen zu asynchronen Anforderungen geändert. In diesem Prozess muss das Front-End die Daten im Formular in das JSON-Format konvertieren und sie dann zur Verarbeitung über eine Ajax-Anfrage an das Back-End senden. Und das erfordert, dass wir einige verwandte Technologien beherrschen.
Wenn wir jQuery zum Betreiben des Formulars verwenden, können wir die Formulardaten über den folgenden Code in das JSON-Format konvertieren:
var formData = $('form').serializeArray(); // 将表单序列化为键值对数组 var jsonData = {}; $.each(formData, function() { if (jsonData[this.name]) { // 如果json中已经有了该属性,则将其转换为数组 if (!jsonData[this.name].push) { jsonData[this.name] = [jsonData[this.name]]; } jsonData[this.name].push(this.value || ''); } else { jsonData[this.name] = this.value || ''; // 如果是第一次添加该属性,则直接加入json中 } });
Im obigen Code verwenden wir zuerst serializeArray() Die
-Methode serialisiert das Formular in ein Array von Schlüssel-Wert-Paaren formData
. Dann erstellen wir ein leeres Objekt jsonData
, um die konvertierten JSON-Daten zu speichern. Verwenden Sie abschließend die Methode $.each()
, um das Formulardatenarray zu durchlaufen und jedes Schlüssel-Wert-Paar zu jsonData
hinzuzufügen. serializeArray()
方法将表单序列化为一个键值对数组formData
。接着我们创建一个空对象jsonData
来存储转换后的JSON数据。最后使用$.each()
方法遍历表单数据数组,并将每个键值对添加到jsonData
中。
需要注意的是,上述代码中使用了判断语句来处理表单中键值对重复的情况,遇到重复的属性名时将其转换为数组,并将新的值添加到数组中。
完整的例子如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表单数据转JSON数据</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(document).ready(function() { $('form').submit(function(event) { event.preventDefault(); // 阻止表单提交 var formData = $(this).serializeArray(); // 将表单序列化为键值对数组 var jsonData = {}; $.each(formData, function() { if (jsonData[this.name]) { // 如果json中已经有了该属性,则将其转换为数组 if (!jsonData[this.name].push) { jsonData[this.name] = [jsonData[this.name]]; } jsonData[this.name].push(this.value || ''); } else { jsonData[this.name] = this.value || ''; // 如果是第一次添加该属性,则直接加入json中 } }); console.log(jsonData); // 打印转换后的JSON数据,可以通过Ajax请求发送到后端进行处理 }); }); </script> </head> <body> <form> <label>姓名:</label> <input type="text" name="name" value="张三"><br> <label>性别:</label> <input type="radio" name="gender" value="male" checked>男 <input type="radio" name="gender" value="female">女<br> <label>爱好:</label> <input type="checkbox" name="hobby" value="reading" checked>阅读 <input type="checkbox" name="hobby" value="music">音乐 <input type="checkbox" name="hobby" value="travel">旅游<br> <button type="submit">提交</button> </form> </body> </html>
这样,我们就成功将表单数据转换为了JSON格式,并可以将其通过Ajax请求发送到后端。同时,需要注意的是,表单在提交之前需要阻止默认行为,这里我们使用了event.preventDefault()
event.preventDefault()
. #🎜🎜#Das obige ist der detaillierte Inhalt vonJQuery-Formulardaten in JSON-Daten umwandeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!