header("Cache-Control:private");//防止返回表单值丢失
<form onsubmit="return checkForm(this)"><intput type="text name="test">
<intput type="button"  value="确定提交" onclick="if(this.form.onsubmit()) {this.disabled = true;this.form.submit();}" />//如果用这个按钮提交到服务器端口的时候,如果服务器端验证表单数据有误的话,
则用js的history.go(-1)返回到该页面,但如果是ie的浏览器则没有什么问题,如果是ff浏览器的话,返回到该页面的
进修,该按钮的状态还是禁用的(disabled)不知道有没有兼容ff的好办法,最好在这个按钮里面写代码,顺便问题一下header("Cache-Control:private");它缓存页面的时间大约是多长时间啊?怎么有的时候提交表单之后
用history.go(-1)的时候,出现无法找到此页面的情况啊?
</form>

解决方案 »

  1.   

    页面上写个onload时间把那按钮打开.下面那个等答案.
      

  2.   

    哦...对哦...缓存了...
    写在onunload试试...
      

  3.   

    history.go(-1);相当于点击浏览器的后退按钮,这可不是一个好习惯,提交的表单数据也不能依赖于缓存,缓存这个东西有时候是很邪恶的如果校验失败需要在服务器端重新对页面进行导向,新加载的页面不会出现按钮的disable问题。提交表单的时候可以组成一个表单bean,服务器端如果校验失败,使用这个bean将对应的表单值回填。PHP我实在是不了解,不知道有没有提供类似的机制,像jsp里最基本的可以使用<jsp:setProperty>标签,实在不行你可以使用ajax来完成数据校验,因为不需要页面的整体刷新,上面的几个问题也就不复存在了。
      

  4.   

    你好,不操作缓存,后退表单在打开session的时候不能保存表单啊