我有一个javascript表单,我使用innerHTML来设置一些文本。
当表单提交信息丢失时。无论如何我可以把它变成“粘性”。我在想一个cookie,但这就是我所知道的。
由于
<form "action="" name="myform">
<input type="text" name='name">
<div id="theName"></div>
</form>
快速示例我正在捕获名称,并且需要div在表单提交后显示名称。
答案 0 :(得分:3)
您需要以某种方式保留数据。有几种选择:
localStorage[key] = value
并使用localStorage[key]
检索表单数据来存储表单数据。使用HTML5的本地存储为您提供了一种无需服务器端配置的自封装方法:
<form action="" name="myform">
<input type="text" name="name">
<div id="theName"></div>
</form>
<script type="text/javascript">
(function() {
var form = document.getElementsByName('myform')[0];
if (localStorage['name'] !== undefined) {
var displayArea = document.getElementById('theName');
displayArea.textContent = localStorage['name'];
}
form.addEventListener('submit', function() {
var nameField = document.getElementsByName('name')[0];
localStorage['name'] = nameField.value;
}, false);
})();
</script>
答案 1 :(得分:2)
您是将输入标记的“value”属性设置为某个空白还是空白?您可以删除(删除属性本身),以便使用最后一个值集合(仅适用于非密码类型的输入。也可以在所有浏览器中都没有尝试过。)。
或者更好的是,您可以使用像(PHP,ASP,RUBY等)这样的服务器端脚本将属性值设置为先前提交的。
<form method="post">
<input type="text" name="txtinput" id="txtinput" value="<?php echo $_POST['txtinput']?>"/>
<input type="submit" value="submit">
</form>
仅在js中执行此操作会因为使用cookie而变得更加复杂和不可靠。
PS:我假设您没有使用XHR(AJAX)提交表单,因为除非您告诉他们,否则XHR不刷新页面或重新初始化输入。
答案 2 :(得分:0)
这应该发生在服务器端。 Javascript用于增强页面,不依赖于数据操作。
转换为PHP的脚本看起来像
<form action="" method="post" name="myform">
<input type="text" name='name">
<div id="theName"><?php
if(isset($_POST['name'])) { echo $_POST['name']; }
?></div>
</form>
......每次都可以使用,无需调用任何JS。
你必须以某种方式处理表单数据 - 你打算如何在没有服务器端脚本的情况下检索数据?