Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >JavaScript melaksanakan pengisian semula borang

JavaScript melaksanakan pengisian semula borang

WBOY
WBOYasal
2023-05-17 19:00:39704semak imbas

Pengisian balik borang bermakna apabila menyerahkan borang, jika medan dalam borang gagal pengesahan dan dikembalikan, pengguna tidak perlu mengisi semula keseluruhan borang, tetapi hanya perlu mengubah suai medan yang gagal pengesahan dan menyerahkan semula. Ini menjimatkan masa pengguna dan meningkatkan pengalaman pengguna.

Dalam pembangunan bahagian hadapan, cara biasa ialah melaksanakan pengisian semula borang melalui JavaScript. Dua kaedah pelaksanaan biasa akan diperkenalkan di bawah.

Cara pertama ialah dengan menyimpan data borang dalam cache setempat penyemak imbas. Apabila penyerahan borang gagal, setiap medan dalam borang diisi secara automatik dengan membaca data dalam cache apabila halaman dimuat semula. Kelebihan kaedah ini ialah pengguna tidak perlu mengisi semula data, mengelakkan pertindihan kerja, dan boleh meningkatkan kepuasan pengguna.

Kod adalah seperti berikut:

// 存储表单数据到本地缓存
function saveFormData() {
  var data = {
    name: document.getElementById('name').value,
    email: document.getElementById('email').value,
    phone: document.getElementById('phone').value
  };
  localStorage.setItem('formData', JSON.stringify(data));
}

// 读取本地缓存中的表单数据并回填到表单中
function fillFormData() {
  var data = JSON.parse(localStorage.getItem('formData'));
  if (data) {
    document.getElementById('name').value = data.name;
    document.getElementById('email').value = data.email;
    document.getElementById('phone').value = data.phone;
  }
}

// 在表单提交前保存表单数据到本地缓存中
document.getElementById('myForm').addEventListener('submit', function(e) {
  e.preventDefault();
  saveFormData();
  // 提交表单
});

// 在页面加载时读取本地缓存中的数据并回填到表单中
window.addEventListener('load', fillFormData);

Cara kedua ialah menyimpan data borang dalam parameter pertanyaan URL sebelum menyerahkan borang Selepas penyerahan borang gagal, apabila halaman dimuat semula, dengan membaca Parameter pertanyaan dalam url secara automatik mengisi pelbagai medan dalam borang. Kelebihan pendekatan ini ialah keadaan tertentu boleh dikekalkan apabila halaman dimuat semula.

Kodnya adalah seperti berikut:

// 存储表单数据到URL查询参数中
function saveFormData() {
  var data = {
    name: document.getElementById('name').value,
    email: document.getElementById('email').value,
    phone: document.getElementById('phone').value
  };
  var params = new URLSearchParams(window.location.search);
  params.set('formData', JSON.stringify(data));
  history.replaceState(null, '', window.location.pathname + '?' + params);
}

// 读取URL查询参数中的表单数据并回填到表单中
function fillFormData() {
  var params = new URLSearchParams(window.location.search);
  var data = JSON.parse(params.get('formData'));
  if (data) {
    document.getElementById('name').value = data.name;
    document.getElementById('email').value = data.email;
    document.getElementById('phone').value = data.phone;
  }
}

// 在表单提交前保存表单数据到URL查询参数中
document.getElementById('myForm').addEventListener('submit', function(e) {
  e.preventDefault();
  saveFormData();
  // 提交表单
});

// 在页面加载时读取URL查询参数中的数据并回填到表单中
window.addEventListener('load', fillFormData);

Di atas ialah dua cara biasa untuk melaksanakan pengisian semula borang. Kaedah yang sesuai untuk melaksanakan pengisian borang hendaklah dipilih berdasarkan situasi tertentu.

Atas ialah kandungan terperinci JavaScript melaksanakan pengisian semula borang. 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