gpt4 book ai didi

jquery - 将表单数据保存到本地存储并在刷新时显示

转载 作者:技术小花猫 更新时间:2023-10-29 12:38:04 25 4
gpt4 key购买 nike

我正在制作一个用户可以输入数据的表单。我希望使用本地存储来保存这个日期。但是当我刷新页面时,只记得高度和体重。而且我一直坚持尝试让性别、运动性和生日也被记住。

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
<title>Test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>
<script>
$(document).ready(function() {
$(window).unload(saveSettings);
loadSettings();
});

function loadSettings() {
$('#height').val(localStorage.height);
$('#weight').val(localStorage.weight);
$('#dateOfBirth').val(localStorage.dateOfBirth);
$('input[type=radio]:checked').val(localStorage.gender);
$("#sportive").find("option[value=" + localStorage.sportive + "]").attr("selected", "selected");
}

function saveSettings() {
var height = document.getElementById("height").value;
var weight = document.getElementById("weight").value;
var sportive = document.getElementById("sportive").value;
var gender = $('input[type=radio]:checked').val();
var dateOfBirth = document.getElementById("dateOfBirth").val();

localStorage.height = height;
localStorage.weight = weight;
localStorage.dateOfBirth = dateOfBirth;
localStorage.sportive = sportive;
localStorage.gender = gender;
}


</script>
</head>
<body>
<div data-role="content">

<form id="myForm" >

gender:

<input id="man" type="radio" name="gender" value="Man" >
<label for="man">Man</label>

<input id="vrouw" type="radio" name="gender" value="Vrouw">
<label for="vrouw" >Vrouw</label>

dateOfBirth:
<input type="date" id="dateOfBirth" name="datum" required />

weight (in kg):
<input type="number" id="weight" name="weight" required />

height (in cm):
<input type="number" id="height" name="height" required />

Hoeveel keer doe je aan sport per week?
<select id="sportive" name="sport">
<option value="1.2" >Weinig of geen training, kantoorwerk</option>
<option value="1.375">Lichte training/sport 1-3 dagen per week</option>
<option value="1.55" >Gemiddelde training/sport 3-5 dagen per week</option>
<option value="1.725" >Zware training/sport 6-7 dagen per week</option>
<option value="1.9" >Zware dagelijkse training/sport plus lichamelijk werk</option>
</select>

<br />

</form>

</div>
</body>

问候

最佳答案

您正在使脚本复杂化。尝试这个。工作<强>JSFIDDLE

如果您只使用过一次 jQuery,请不要将它与纯 javascript 混合使用,例如 document.getElementById()。并且不要创建height 变量来存储$('#height').val(),您可以直接使用它。代码更具可读性。

$(document).ready(function() {
$(window).unload(saveSettings);
loadSettings();
});

function loadSettings() {
$('#height').val(localStorage.height);
$('#weight').val(localStorage.weight);
$('#dateOfBirth').val(localStorage.dateOfBirth);
$('input[value="' + localStorage.gender + '"]').prop('checked', true);
$("#sportive").val(localStorage.sportive);
}

function saveSettings() {
localStorage.height = $('#height').val();
localStorage.weight = $('#weight').val();
localStorage.dateOfBirth = $('#dateOfBirth').val();
localStorage.sportive = $("#sportive").val();
localStorage.gender = $('input[type=radio]:checked').val();
}

更新:如果您使用的是 jQuery 3,卸载将抛出错误。你应该改用这个:

$(window).on('unload', function(){
saveSettings();
loadSettings();
});

关于jquery - 将表单数据保存到本地存储并在刷新时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707501/

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