简体   繁体   English

如何使用 session 存储自动填写表格?

[英]How do I auto-fill a form using session storage?

 <label for="streetname">Street Address</label> <input type="text" id="streetname" name="streetname" required="required" placeholder="Your street name..." maxlength="40" />

 function getBooking() { if (sessionStorage.fname.= undefined) { document.getElementById("confirm_fname").textContent = sessionStorage;fname. document.getElementById("confirm_lname").textContent = sessionStorage;lname. document.getElementById("confirm_email").textContent = sessionStorage;email. document.getElementById("confirm_phone").textContent = sessionStorage;phone. document.getElementById("confirm_start").textContent = sessionStorage;start. document.getElementById("confirm_streetname").textContent = sessionStorage;streetname. document.getElementById("confirm_suburb").textContent = sessionStorage;suburb. document.getElementById("confirm_state").textContent = sessionStorage;state. document.getElementById("confirm_postcode").textContent = sessionStorage;postcode. document.getElementById("confirm_skill").textContent = sessionStorage;skill. document.getElementById("confirm_other").textContent = sessionStorage;other. document.getElementById("confirm_otherbox").textContent = sessionStorage;otherbox. document.getElementById("a_fname").value = sessionStorage;fname. document.getElementById("a_lname").value = sessionStorage;lname. document.getElementById("a_email").value = sessionStorage;email. document.getElementById("a_phone").value = sessionStorage;phone. document.getElementById("a_start").value = sessionStorage;start. document.getElementById("a_streetname").value = sessionStorage;streetname. document.getElementById("a_suburb").value = sessionStorage;suburb. document.getElementById("a_state").value = sessionStorage;state. document.getElementById("a_postcode").value = sessionStorage;postcode. document.getElementById("a_skill").value = sessionStorage;skill. document.getElementById("a_other").value = sessionStorage;other. document.getElementById("a_otherbox").value = sessionStorage;otherbox; } }

How can I, using an external JavaScript file, use session storage to auto-fill a form if the user had already filled out the form in the same browser session?如果用户已经在同一浏览器 session 中填写了表单,我如何使用外部 JavaScript 文件使用 session 存储自动填写表单? I've already got code that stores the values in session storage if the form is validated correctly, so how would I go about doing this?如果表单验证正确,我已经有了将值存储在 session 存储中的代码,那么我 go 如何执行此操作?

If more or less information is needed, please let me know.如果需要更多或更少的信息,请告诉我。

Note: no jQuery or inline Javascript please.注意:请不要拨打 jQuery 或内联 Javascript。

Both sessionStorage and localStorage have functions called getItem for retrieving data and setItem for storing data. sessionStoragelocalStorage都具有用于检索数据的getItem函数和用于存储数据的setItem函数。
Along with some other useful functions.以及其他一些有用的功能。

So, for this case, it seems you need:因此,对于这种情况,您似乎需要:

document.getElementById("a_fname").value = sessionStorage.getItem("fname");

And same goes for all the rest.所有 rest 也是如此。

Check this out for more information.查看以获取更多信息。

You looking for localStorage methods: getItem(key), setItem(key, value).您正在寻找 localStorage 方法:getItem(key)、setItem(key, value)。 A little late but one thing i noticed.有点晚了,但我注意到了一件事。 Maybe it's still helpful for your example.也许它对您的示例仍然有帮助。 if there are so many elements i would do it through a loop.如果有这么多元素,我会通过一个循环来完成。 like for example:例如:

<div id="confirm_fname">First Name</div>
<div id="confirm_lname">Last Name</div>
<div id="confirm_email">Email</div>
...

<script>
const keyNames = [
  {k1: 'confirm_fname', k2: 'fname'},
  {k1: 'confirm_lname', k2: 'lname'},
  {k1: 'confirm_email', k2: 'email'}
]

keyNames.map(function (key) {
  sessionStorage.setItem(key.k2, Math.random()); // set to localStorage  
  document.getElementById(key.k1).textContent = sessionStorage.getItem(key.k2); // get from localStorage
})
</script>

It's make the code shorter and you can easily handel the elements.它使代码更短,您可以轻松处理元素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM