Uno Mein Ame
Uno Mein Ame

Reputation: 1090

Reset form on Back button

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

Answers (3)

Sean madden
Sean madden

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

dku.rajkumar
dku.rajkumar

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

Flo
Flo

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

Related Questions