首页 > 解决方案 > 自动填写表格时如何删除“未定义”?

问题描述

function validate() {
  var errMsg = "";
  var result = true;

  var fname = document.getElementById("fname").value;
   if (!fname.match(/^[a-zA-Z]+$/)) {
        errMsg += "Please enter your first name correctly.\n";
        result = false;
    }
  if (errMsg) {
alert(errMsg);
  }

  if (result) {
  
function storeBooking(
  fname
  ) {
  sessionStorage.fname = fname;
  }
  function getBooking() {
  if (sessionStorage.fname != undefined) {
    document.getElementById("confirm_fname").textContent = sessionStorage.fname;
     }
 }
 
 function prefillcard()
{ 
  document.getElementById("fname").value =  sessionStorage.fname;
  
  }

window.addEventListener("DOMContentLoaded", prefillcard);

function init() {
  var regForm = document.getElementById("regform");

  regForm.onsubmit = validate;
}
<form action="apply.html" method="post" id="regform">

<label for="fname">First Name</label>
        <input type="text" id="fname" name="firstname" placeholder="Your name.." required="required" maxlength="25" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode==32)">
        <input type="submit" value="Apply">
 </form>

如果用户已经在同一个浏览器会话中填写了表单然后重新访问了表单,我已经设置了一些代码来自动填写表单。唯一的问题是有一个占位符,你需要在输入之前删除它,我不知道如何摆脱它。第一次填写表格时会出现“未定义”。我该如何摆脱这个?

注意:没有 jQuery 或内联 JavaScript。

标签: javascripthtml

解决方案


在会话中存储值使用

window.sessionStorage.setItem("Name", Value)); 

并从会话使用中检索值

window.sessionStorage.getItem("Name");

下面的示例代码

function prefillcard() { 
  if (window.sessionStorage.getItem("fname")) {
   var fnm = window.sessionStorage.getItem("fname");
   document.getElementById("fname").value = fnm;
  }
}

并设置会话值使用

var fnm = document.getElementById("fname").value;
window.sessionStorage.setItem("fname", fnm));

推荐阅读