很早就收到一个Bug说修改了某个元素的值以后,点击Next提交然后使用浏览器的Back按钮返回,结果那个元素的值是提交以前的值。
这个应该是浏览器的History功能的限制,它不能记录你的Javascript代码对Form元素的值的修改。在完成向导之类的功能的时候不要使用自定义的表单元素,或者不要用JavaScript去修改其它的需要提交的元素的值,这些修改都不会被浏览器的History功能记录。当用户点击浏览器的后退时,他可能看到不是他期望的结果。
一般要解决这个问题,要么禁用浏览器的后退功能(很多MIS系统可能都是这么干的),自己另外提供一个后退功能重新从后台取数据并刷新页面。
要么使用Cookie记录那些操作并在页面的onload事件里面从Cookie提取那些记录。
无论是那种方法都不是很方便。
不知道有没有完美的解决方案。另外这个问题对IE和FF都是有效的。
(Visited 155 times, 1 visits today)
2006年12月22日 at 12:19
要是能有一段最短的,最具代表性的代码就更好了 :em19:
2006年12月22日 at 13:15
呵呵,很简单啊:
form[0].getElementById(“name”).value=”admin”;