HTML5 localStorage填充表单onload

时间:2011-11-06 05:16:35

标签: javascript android iphone html5 local-storage

我正在关注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>

1 个答案:

答案 0 :(得分:0)

1)您可以将您的页面放在互联网上,最多提供QR码以便在移动设备上快速加载(免费QR生成器here),这样每个人都可以轻松测试

2)浏览器设置是否要求授予域在本地存储中存储值的权限?如果是这样,onunload没有地方接受这样的请求。在准备好的函数中放置一个存储指令进行测试

3)卸载有点不可靠(例如 - 浏览器崩溃)。您是否考虑过在输入上保存onblur的值?在大型textareas中,即使用户仍在编辑,保存计时器中的值也是可行的。

4)This question也考虑了卸载功能的问题。也许未来对这个问题的回答会解决你的问题吗?