【发布时间】:2016-08-19 21:23:34
【问题描述】:
我正在尝试将 HTML 表单中的各种值保存到 sessionStorage,但使用以下代码我收到“storeInfo Start”警报但没有收到“StoreInfo End”,因此我认为 sessionStorage 代码存在一些错误/错误。
我已经删除了其他代码,但这个示例仍然不适合我,我正在使用 Firefox 45.0.2,如果相关的话,但是我之前在这个浏览器中使用过 sessionStorage 和类似的代码,但我找不到差异/s之间。
function validate () {
alert("Validate");
storeInfo();
}
function storeInfo() {
alert("storeInfo Start");
sessionStorage.firstName = document.getElementById("firstName").value;
alert("StoreInfo End - First Name is: " + sessionStorage.firstName);
}
function init () {
alert("Init Works!");
// For apply page
if (document.getElementById("applyForm") != null) {
var applyForm = document.getElementById("applyForm");
applyForm.onsubmit = validate;
}
}
window.onload = init;
来自 HTML 文件:
<form id="applyForm">
<p>
<label for="firstName">First Name</label>
<input type="text" name="firstName" id="firstName" pattern="^[a-zA-Z]+$" maxlength="25" size="25" required="required" value="ThisIsMyName" />
</p>
<input type="submit" />
</form>
【问题讨论】:
-
sessionStorage 是这样工作的,错误应该在其他地方
-
document.getElementById("firstName")必须返回 null 否则您会看到第二个警报 -
您检查过您的控制台吗?如果您的表单操作针对不同的域,则可能是同源策略。您应该在控制台中看到类似的内容。 > 未捕获的安全错误:无法读取“sessionStorage”属性 > 从“窗口”:文档已被沙盒化并且缺少 >“允许同源”标志。
-
非常感谢,我没有意识到有一个错误“操作不安全”实际上阻止了保存数据,因为我一直在本地工作,但是在服务器上使用了 echo 脚本.当我将此代码上传到同一个域时,它又可以正常工作了。感谢您的所有回复
标签: javascript forms sessionstorage