如果用户在提交表单后返回,请尝试找到一个优雅的解决方案来重置网络表单(或更具体地说是两个INPUT Type='hidden'
字段)。
我知道BACK按钮不会触发onload事件。
但有什么方法可以解决这个问题吗?
答案 0 :(得分:7)
按下后退按钮时,onbeforeunload
事件被触发,因此您可以尝试类似
<强> jQuery的:强>
$('#form_id').submit(function(){
$(window).unload(function () {
$('input[type="hidden"]').val("reset_value");
}
});
<强>的javascript:强>
<form onsubmit="call_function();">
脚本标记之间的:
function call_function(){
window.onbeforeunload = function(){
var input_elems = document.getElementByTagName('input');
for(var i=0;i<input_elems.length;i++){
if(input_elems[i].type === 'hidden'){
input_elems[i].innerHTML = "reset_value";
}
}
}
答案 1 :(得分:0)
您可以阻止默认提交来自触发,ajax-post表单,然后取消设置不需要的字段并将位置更改为新页面。不是很好,但应该这样做。
答案 2 :(得分:-1)
对于IE 8或更低版本,您可以重置表单:
document.getElementById('formname').reset();
对于IE 9,Firefox,Chrome,您可以使用以下方法重置所需的字段:
elementNodeHere.value = elementNodeHere.getAttribute('value');
不要打扰jquery,
.attr('value')
返回的新值不是原始值
(IE 7中的getAttribute
仅返回新值,而在IE 8中,它可以返回NULL
)