1.问题:最近做项目遇到一个通过点击一个radio按钮触发onchange事件改变了form表单值,然后在进行其他的操作时,页面会提示一个confirm的弹框,但是我是不需要这种弹框的,解决方案如下。
2.方案:在实际开发中更多用的情况是在当前页面的表单内容发生改变
onbeforeunload事件,onbeforeunload事件是在浏览器刷新或关闭时触发,该事件可以在window,body元素,其他元素上绑定,并且用returnValue返回提示文字;
触发该事件时会弹出像confirm一样的弹框,询问用户是离开页面还是继续留在本页
<td class="<%=classType%>"><input type=radio name="pi.piId" value='<bean:write name="pi" property="piId"/>'
οnclick="selectPi(this.value,'<bean:write name="pi" property="updateTime" format="<%=FormatConstants.DFN_LONGTIMESTAMPZ%>"/>')"/></td>
<td class="<%=classType%>">
<a href="#" οnclick='viewSummary(<bean:write name="pi" property="piId"/> );' ><bean:write name="pi" property="piId"/> </a>
</td>
function selectPi(piId,updateTime){//通过点击onclick事件来改变了form的表单值。
document.forms[0].elements['pi.piId'].value = piId;
document.forms[0].elements['pi.updateTime'].value = updateTime;
window.onbeforeunload = null;//通过禁用onbeforeunload 事件来禁止询问是否保存的弹出框
}