Сбросить форму на кнопку Назад - PullRequest
3 голосов
/ 15 декабря 2011

Попытка найти элегантное решение для сброса веб-формы (или, точнее, двух полей INPUT Type='hidden'), если пользователь нажимает НАЗАД после отправки формы.

Я понимаю, что кнопка НАЗАД не вызывает загрузкусобытие.

Но есть ли способ справиться с этим?

Ответы [ 3 ]

7 голосов
/ 15 декабря 2011

при нажатии кнопки «Назад» происходит событие 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";
     }
   }
}
0 голосов
/ 20 августа 2012

Для IE 8 или менее вы можете сбросить форму: document.getElementById('formname').reset();

Для IE 9, Firefox, Chrome вы можете сбросить только те поля, которые вы хотите, используя: elementNodeHere.value = elementNodeHere.getAttribute('value');

Не беспокойся о jquery, .attr('value') возвращает новое значение, а не оригинал

(getAttribute в IE 7 возвращает только новое значение, а в IE 8 может возвращать NULL)

0 голосов
/ 15 декабря 2011

Вы можете запретить отправку по умолчанию, ajax-отправить форму, затем сбросить ненужные поля и изменить местоположение на новую страницу.Разве это не очень хорошо, но нужно делать свое дело.

...