Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Mari kita bincangkan tentang cara jQuery mengendalikan data borang yang tidak dikodkan

Mari kita bincangkan tentang cara jQuery mengendalikan data borang yang tidak dikodkan

PHPz
PHPzasal
2023-04-10 09:47:35535semak imbas

Kaedah bersiri() jQuery adalah untuk mensiri data dalam bentuk ke dalam rentetan berkod URL. Tetapi dalam beberapa kes, kita perlu menggunakan rentetan mentah yang tidak dikodkan Dalam kes ini, kita boleh menggunakan kaedah serializeArray() untuk menukar data borang kepada tatasusunan JSON, dan kemudian menulis kod kita sendiri untuk memprosesnya ke dalam format yang diperlukan.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan jQuery untuk mengendalikan data borang yang tidak dikodkan.

  1. Batasan kaedah serialize()

Apabila menggunakan kaedah serialize() jQuery, data akan dikodkan URL, yang memastikan keselamatan data dan boleh digunakan dalam pelbagai dipindahkan dalam permohonan. Tetapi kadangkala, kita perlu menghantar data borang mentah terus ke pelayan bahagian belakang dan bukannya mengekodnya dahulu dan kemudian menghantarnya.

Sebagai contoh, beberapa rangka kerja bahagian belakang (seperti Spring MVC) secara automatik menyahkod data borang yang dikodkan URL apabila mereka menerimanya. Ini bermakna apabila menggunakan kaedah serialize(), kita perlu memberi perhatian sama ada data perlu dikodkan.

  1. Gunakan kaedah serializeArray()

Jika kami ingin menghantar permintaan menggunakan data borang mentah yang tidak dikodkan, kami boleh menggunakan kaedah serializeArray() untuk Tukar kepada JSON tatasusunan. Kaedah ini menukar setiap elemen dalam bentuk kepada objek yang mengandungi nama elemen, nilai dan atribut jenis.

Contohnya, borang berikut:



< ;input type="text" name="password" value="123456">

boleh ditukar kepada tatasusunan JSON melalui kod berikut:

var formData = $("form").serializeArray();

Struktur data tatasusunan adalah seperti berikut:

[
{ nama: "pengguna", nilai: "Alice", taip : "teks" },
{ nama: "kata laluan", nilai: "123456", taip: "teks" }
]

2.1 Tulis logik pemprosesan data anda sendiri

Seterusnya, kita boleh menulis logik pemprosesan data kita sendiri mengikut keperluan kita sendiri. Sebagai contoh, kod berikut menukar tatasusunan JSON kepada data bentuk mentah yang tidak dikodkan:

var formData = $("form").serializeArray();

var rawData = {};

formData.forEach(function(item) {
rawData[item.name] = item.value;
});

console.log($.param(rawData) ); // user=Alice&password=123456

2.2 Gunakan kaedah $.param() untuk menyerikan data ke dalam rentetan yang tidak dikodkan

Jika kita ingin menggunakan kaedah serialize() seperti Dengan data borang yang tidak dikodkan, anda boleh menggunakan kaedah $.param() jQuery untuk menyerikan data.

var formData = $("form").serializeArray();

var rawData = {};

formData.forEach(function(item) {
rawData[item.name] = item.value;
});

console.log($.param(rawData, true)); // user=Alice&password=123456

Perlu diingat bahawa apabila menggunakan kaedah $.param(), parameter kedua perlu ditetapkan kepada benar untuk memastikan data output tidak dikodkan.

  1. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan jQuery untuk mengendalikan data borang yang tidak dikodkan. Dengan menggunakan kaedah serializeArray(), kita boleh menukar data borang kepada tatasusunan JSON dan kemudian menulis kod itu sendiri untuk memprosesnya ke dalam format yang diperlukan. Jika anda perlu menyerikan data kepada rentetan yang tidak dikodkan, anda boleh menggunakan kaedah $.param() jQuery dan menetapkan parameter kedua kepada benar.

Walaupun dalam beberapa kes adalah perlu untuk menggunakan data borang mentah yang tidak dikodkan, dalam kebanyakan kes kami mengesyorkan menggunakan kaedah serialize(). Kaedah ini boleh memastikan keselamatan data dan mengurangkan ralat latar belakang yang disebabkan oleh format data bukan standard.

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara jQuery mengendalikan data borang yang tidak dikodkan. 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