繁体   English   中英

重置后退按钮上的表单

[英]Reset form on Back button

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

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

但有没有办法解决这个问题?

当按下后退按钮时, 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";
     }
   }
}

您可以阻止默认提交来自触发,ajax-post表单,然后取消设置不需要的字段并将位置更改为新页面。 不是很好,但应该做的伎俩。

对于IE 8或更低版本,您可以重置表单: document.getElementById('formname').reset();

对于IE 9,Firefox,Chrome,您可以使用以下方法重置所需的字段: elementNodeHere.value = elementNodeHere.getAttribute('value');

不要打扰jquery, .attr('value')返回新值而不是原始值

(IE 7中的getAttribute仅返回新值,在IE 8中它返回NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM