Reputation: 1090
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?
Upvotes: 3
Views: 12714
Reputation: 1
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
)
Upvotes: -1
Reputation: 18568
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";
}
}
}
Upvotes: 7
Reputation: 1671
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.
Upvotes: 0