重置后退按钮上的表单

时间:2011-12-15 10:34:40

标签: javascript forms reset

如果用户在提交表单后返回,请尝试找到一个优雅的解决方案来重置网络表单(或更具体地说是两个INPUT Type='hidden'字段)。

我知道BACK按钮不会触发onload事件。

但有什么方法可以解决这个问题吗?

3 个答案:

答案 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