JQuery-Formulardaten in JSON-Daten umwandeln

PHPz
Freigeben: 2023-05-28 14:43:38
Original
1729 Leute haben es durchsucht

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中
    }
});
Nach dem Login kopieren

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>
Nach dem Login kopieren

这样,我们就成功将表单数据转换为了JSON格式,并可以将其通过Ajax请求发送到后端。同时,需要注意的是,表单在提交之前需要阻止默认行为,这里我们使用了event.preventDefault()

Es ist zu beachten, dass der obige Code Beurteilungsanweisungen verwendet, um mit wiederholten Schlüssel-Wert-Paaren im Formular umzugehen. Wenn wiederholte Attributnamen angetroffen werden, werden diese in Arrays konvertiert und neue Werte hinzugefügt . in das Array. #🎜🎜##🎜🎜#Das vollständige Beispiel lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Auf diese Weise haben wir die Formulardaten erfolgreich in das JSON-Format konvertiert und können sie über eine Ajax-Anfrage an das Backend senden. Gleichzeitig ist zu beachten, dass das Formular vor dem Absenden das Standardverhalten verhindern muss. Hier verwenden wir die Methode 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage