我有一个非常奇怪的问题。我使用 jquery 提交提交表单。 everythign 在我的电脑上的 FF 和 IE9 中运行良好。 IE9是企业标准,所有用户都安装相同的版本。
现在有一个用户在每次提交后都会遇到问题
- 表单字段(文本区域、选择、输入)恢复为之前的值
- 重新加载数据(AJAX)时,它会显示旧值(即使之前的提交实际上正确地将更新保存到数据库)
要显示新值的唯一方法是重新启动 IE9。我清除了历史记录(临时文件),但这没有效果。
由于这在我的 IE9 电脑上运行得非常好,什么设置会影响这个?还有其他想法吗?有点迷失在这里。
编辑:
其他用户也有同样的问题,但它也适用于某些用户,就像在我的电脑上一样
编辑2:
仅供澄清:我希望提交的值保留在输入字段中。提交是一种保存,用户应该能够继续输入数据并稍后再次保存。
编辑3:
尝试了我电脑上的重置...按钮(重置 Internet Explorer 设置)。没有改变。仍然按预期工作。问题是我无法在用户电脑上轻松执行此操作,因为他会丢失整个配置。
最佳答案
问题是,表单提交后,数据会重新加载,以使用 AJAX 来显示更改的元数据(上次更新用户和时间)。由于某种原因,GET AJAX 调用被缓存,因此返回了旧值。由于某种原因,我不知道我的电脑从未缓存过 GET 调用,因此它始终正常工作。
解决方案是禁用缓存:
$.ajax({
"url": url,
"type": "GET",
"cache": false,
"dataType": 'json',
//...
});
关于internet-explorer - IE9 : Form values revert back to old value after AJAX form submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080187/