Rumah  >  Artikel  >  hujung hadapan web  >  Tukar data borang jquery kepada data json

Tukar data borang jquery kepada data json

PHPz
PHPzasal
2023-05-28 14:43:381659semak imbas

Dengan pembangunan pembangunan bahagian hadapan, semakin banyak tapak web dan aplikasi telah menukar kaedah penyerahan borang daripada permintaan segerak tradisional kepada permintaan tak segerak. Dalam proses ini, bahagian hadapan perlu menukar data dalam bentuk ke dalam format JSON, dan kemudian menghantarnya ke bahagian belakang untuk diproses melalui permintaan Ajax. Dan ini memerlukan kita menguasai beberapa teknologi yang berkaitan.

Apabila kami menggunakan jQuery untuk mengendalikan borang, kami boleh menukar data borang ke dalam format JSON melalui kod berikut:

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中
    }
});

Dalam kod di atas, kami mula-mula menggunakan kaedah serializeArray() untuk sirikan borang menjadi Tatasusunan pasangan nilai kunciformData. Kemudian kami mencipta objek kosong jsonData untuk menyimpan data JSON yang ditukar. Akhir sekali, gunakan kaedah $.each() untuk lelaran melalui tatasusunan data borang dan tambahkan setiap pasangan nilai kunci pada jsonData.

Perlu diambil perhatian bahawa kod di atas menggunakan pernyataan penghakiman untuk menangani pasangan nilai kunci berulang dalam bentuk Apabila nama atribut berulang ditemui, ia ditukar kepada tatasusunan dan nilai baharu ditambahkan pada tatasusunan.

Contoh lengkapnya adalah seperti berikut:

<!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>

Dengan cara ini, kami telah berjaya menukar data borang ke dalam format JSON dan boleh menghantarnya ke bahagian belakang melalui permintaan Ajax. Pada masa yang sama, perlu diingatkan bahawa borang perlu menghalang tingkah laku lalai sebelum menyerahkannya Di sini kami menggunakan kaedah event.preventDefault().

Atas ialah kandungan terperinci Tukar data borang jquery kepada data json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Ubah suai jadual dalam jqueryArtikel seterusnya:Ubah suai jadual dalam jquery