[英]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.