我正在关注O'Reilly“使用HTML,CSS和Javascript构建iPhone应用程序”中的示例,我希望在应用程序关闭并重新加载后,从表单输入的值将填充,类似于php的粘性表单。 “
我从示例中改变的唯一方面是在提交时调用saveSettings,在这里我调用了unload(之前在输入模糊上)。
在文档就绪而不是提交时调用加载设置。
虽然安装了jquery mobile,但pageInit无法正常工作。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
<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() {
$('#monthly-income').val(localStorage.income);
$('#saving-per-month').val(localStorage.saving);
$('#current-age').val(localStorage.age);
}
function saveSettings() {
localStorage.age = $('#current-age').val();
localStorage.saving = $('#saving-per-month').val();
localStorage.income = $('#monthly-income').val();
}
</script>
</head>
<body>
<div data-role="content">
<div data-type="horizontal" data-role="controlgroup">
<a href="#foo" data-role="button">Input</a>
<a href="#foo1" id="output-button" data-role="button">Output</a>
</div>
<input type="number" min="500" max="10000" step="100" name="monthly-income" id="monthly-income" value=""/>
<input type="number" min="500" max="10000" step="100" name="saving-per-month" id="saving-per-month" value=""/>
<input type="number" min="16" max="75" step="1" name="current-age" id="current-age" value=""/>
</body>
</html>
答案 0 :(得分:0)
1)您可以将您的页面放在互联网上,最多提供QR码以便在移动设备上快速加载(免费QR生成器here),这样每个人都可以轻松测试
2)浏览器设置是否要求授予域在本地存储中存储值的权限?如果是这样,onunload没有地方接受这样的请求。在准备好的函数中放置一个存储指令进行测试
3)卸载有点不可靠(例如 - 浏览器崩溃)。您是否考虑过在输入上保存onblur的值?在大型textareas中,即使用户仍在编辑,保存计时器中的值也是可行的。
4)This question也考虑了卸载功能的问题。也许未来对这个问题的回答会解决你的问题吗?