gpt4 book ai didi

javascript - 使用 localStorage 在一页上自动完成多个表单?

转载 作者:行者123 更新时间:2023-11-28 06:05:47 24 4
gpt4 key购买 nike

我尝试过操纵 Ke Yang 使用的代码其中 localStorage 用于将表单字段中的文本镜像到其他字段。我想做类似的事情。

我有一个页面(可下载的库),其中包含大约 10 个潜在客户开发表单。填写并提交后,表单会向用户发送可下载的内容。简单的东西。但是,假设用户想要在此页面上下载多个内容,那么让他们继续填写相同的表格是没有意义的。表单完全相同,字段和字段名称相同,只是表单 ID 不同。

我想使用 localStorage,这样一旦用户在页面上填写了一个表单,他们就可以选中任何其他表单顶部的复选框,浏览器将自动填充他们的数据,然后点击提交。理想情况下,即使在他们离开页面后也会保存这些数据。数据提交由表单本身处理,因此不需要cookie(并且localStorage更好)。

这是我到目前为止的(最小化)代码,它位于我的scripts.js 文件中的(function($) { 下:

$( ‘input[name=target]’ ).click(function() {if($(‘input[name=target]’).is(‘:checked’)) {
if (localStorage[“first-name”]) {
$(‘input[name=first-name]’).val(localStorage[“first-name”]);
}
if (localStorage[“last-name”]) {
$(‘input[name=last-name]’).val(localStorage[“last-name”]);
}
if (localStorage[“your-email”]) {
$(‘input[name=your-email]’).val(localStorage[“your-email”]);
}
}
});$(‘.wpcf7-text’).change(function () {
localStorage[$(this).attr(‘name’)] = $(this).val();
});

在上面您可以看到一个表单中不同字段的名称。 HTML 如下所示,需要勾选复选框才能调用存储的表单数据:

<p><input id="target2" name="target2" type="checkbox" value="Downloaded our stuff before?" /> Downloaded our stuff before?</p>
<input type = "text" name ="first-name" class="wpcf7-text">
<input type = "text" name ="last-name" class="wpcf7-text">
<input type = "text" name ="your-email" class="wpcf7-text">

用户点击“提交”后,需要存储(而不是清除)之前输入表单的文本,以便他们在首次下载后可以轻松下载更多内容。

提前致谢!

最佳答案

在我看来,您的代码中存在太多问题

1) $('input[name=target]') .这应该是 $("input[name='target']") 。 Check此链接了解更多信息。

2)使用setItem设置项目

3)您需要使用.on来委托(delegate)更改

我必须重写 html 才能使其工作。只是为了演示我只使用了三个输入字段

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="https://code.jquery.com/jquery-2.2.3.min.js" crossorigin="anonymous"></script>
</head>

<body>

<p><input id="target" name="target" type="checkbox" value="Downloaded our stuff before?" /> Downloaded our stuff before?</p>
<input type = "text" name ="first-name" class="wpcf7-text">
<input type = "text" name ="last-name" class="wpcf7-text">
<input type = "text" name ="your-email" class="wpcf7-text">

<script>
$("#target").change(function(){
if($(this).is(":checked")) {
if (localStorage['first-name']) {
$("input[name='first-name']").val(localStorage['first-name']);
}
if (localStorage['last-name']) {
$("input[name='last-name']").val(localStorage['last-name']);
}
if (localStorage['your-email']) {
$("input[name='your-email']").val(localStorage['your-email']);
}
}
});
$(".wpcf7-text").on("change",function () {
localStorage.setItem($(this).attr("name") , $(this).val());
});
</script>
</body>
</html>

关于javascript - 使用 localStorage 在一页上自动完成多个表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com