Trying to find an elegant solution to reset a webform (or more specifically two INPUT Type='hidden'
fields) if a user goes BACK after the form is submitted.
I understand that BACK button does not trigger an onload event.
But is there any way of dealing with this?
Trying to find an elegant solution to reset a webform (or more specifically two INPUT Type='hidden'
fields) if a user goes BACK after the form is submitted.
I understand that BACK button does not trigger an onload event.
But is there any way of dealing with this?
when the back button is pressed, onbeforeunload
event is fired so you can try something like
jQuery:
$('#form_id').submit(function(){
$(window).unload(function () {
$('input[type="hidden"]').val("reset_value");
}
});
javascript:
<form onsubmit="call_function();">
in between script tag:
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";
}
}
}
You could prevent the default submit from fireing, ajax-post the form, then unset the unwanted fields and change the location to a new page. Isnt really nice, but should do the trick.
For IE 8 or less you can reset the form :
document.getElementById('formname').reset();
For IE 9, Firefox, Chrome you can reset just the fields you want by using:
elementNodeHere.value = elementNodeHere.getAttribute('value');
Don't bother with jquery,
.attr('value')
returns the new value not the original
(getAttribute
in IE 7 returns the new value only and in IE 8 it can return NULL
)