首頁  >  文章  >  web前端  >  javascript實作表單回填

javascript實作表單回填

WBOY
WBOY原創
2023-05-17 19:00:39679瀏覽

表單回填是指在提交表單時,如果表單中的某個欄位未通過驗證而被退回,使用者不需要重新填寫整個表單,而是只需要修改未通過驗證的欄位並重新提交。這可以節省使用者的時間,提高使用者體驗。

在前端開發中,常用的方式是透過JavaScript實作表單回填。以下將介紹兩種常用的實作方式。

第一種方式是透過儲存表單資料到瀏覽器本機快取。當表單提交失敗後,在頁面重新載入時,透過讀取快取中的資料將表單中的各個欄位自動填入。這種方式的好處是用戶無需重新填寫數據,避免了重複勞動,並且可以提高用戶滿意度。

程式碼如下:

// 存储表单数据到本地缓存
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);

第二種方式是透過表單提交前將表單資料儲存到URL查詢參數中,在表單提交失敗後,在頁面重新載入時,透過讀取url中的查詢參數會將表單中的各個欄位自動填入。這種方式的好處是可以在頁面重新載入時保留某個特定的狀態。

程式碼如下:

// 存储表单数据到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);

以上是兩種實作表單回填的常用方式。應根據具體情況選擇合適的方式來實現表單回填。

以上是javascript實作表單回填的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn