我已经做了一个手动输入一些字段,其他人是一个下拉列表和一些日历字段在JavaScript中的Web窗体。我最近添加的一个下拉菜单是从前一个下拉菜单的选定值中填充的。当它重新载入表单时,我会丢失所有先前输入的值,并且只保留一个下拉列表中的值。我是否必须捕获所有值,或者是否有办法在不重新加载表单的情况下填充第二个下拉列表?重新加载页面我失去了所有的值
回答
-.-一个字。 AJAX。用它。
无论何时您重新载入表格,您将失去所有未记录的数据时间段。
如果您必须重新加载页面,将所有数据保存在cookie中或其他东西。
我假设通过重新加载表单来表示提交它,然后返回页面的一个版本,并根据提交的第一个下拉列表填充第二个下拉列表。如果是这样的话,你可能会考虑隐藏第二个下拉菜单的所有可能值,然后在第一个下拉菜单中进行选择之后用JavaScript填充它。如果可能值的数量非常大或必须在服务器端进行计算(因为您最初无法知道所有的值),那么您可以使用AJAX提交表单并避免重新加载整个页面。
不,我的意思是重新加载页面,现在你说了这个,使我意识到重新加载页面,重新初始化所有内容,所以不会解决我的问题。我会考虑将Ajax适配到我的表单。 – JohnB
检查您的页面的cache-control
。该属性告诉浏览器依靠自己的缓存来重新加载页面。
这可以设置为元标记。例如:
<meta http-equiv="Cache-control" content="public">
但更好的方法(在我看来)是通过服务器端,使用header()
function。
请注意,有些表单为了避免垃圾邮件以及出于安全原因而倾向于将其设置为no-cache
。
有一种方法可以在不使用ajax的情况下保存数据,也不会向服务器发送任何内容。它被称为sessionStorage。
// store item
localStorage.setItem("index", "value");
// retrieve item
var data = localStorage.getItem("index");
所以,你只需要使用的sessionStorage的DATAS保存任何动作后(点击一个按钮,的keydown,鼠标离开...)和磨片重新加载页面,你就必须从你的数据再次填充它存储在会话中!
- 1. TempData的失去了页面重载
- 2. jQuery-Ui失去了功能后重新加载到页
- 3. 为什么Firefox在页面重新加载时失去焦点?
- 4. 如何重置页面的所有内容,无需重新加载页面GWT
- 5. 有什么缺失?在无刷新\重新加载页面
- 6. 加载我所有的页面顶部
- 7. DataGrid中排序失去了页面加载
- 8. 表值不上重新加载页面
- 9. 如何更新没有页面重新加载的Django页面?
- 10. onhashchange重新加载页面?
- 11. 重新加载HTML页面
- 12. 重新加载页面
- 13. 重新加载页面Div
- 14. 重新加载JSP页面
- 15. AJAX页面重新加载
- 16. caroufredsel重新加载页面
- 17. FormsAuthentication.RedirectFromLoginPage重新加载页面
- 18. mvc重新加载页面?
- 19. 加载新网址时我失去了历史记录
- 20. 从ajax加载的子页面重新加载页面
- 21. 如何运行重新加载页面向所有观众
- 22. 没有缓存值的FF重新加载页面
- 23. Rails加载我的JavaScript后,页面重新加载
- 24. 的WebPack甚至没有刷新页面重新加载在所有
- 25. jQuery Mobile没有正确地重新加载我的页面
- 26. 角HTML5模式,路由器去页面重新加载
- 27. 在页面加载/重新加载时设置选择值
- 28. ajax插入后,加载所有插入列表,无需重新加载页面
- 29. HornetQ失去了它的所有主题
- 30. 停止此脚本重新加载页面重新加载
我在整个表单上拒绝了AJAX,但我认为这是我唯一的选择。我将不得不学习它。 – JohnB
Theres在抵抗ajax方面没有意义。大多数用户讨厌刷新页面提交的表单。吸了它。 – Ramulis