2011-12-15 5 views
3

Попытка найти элегантное решение для сброса веб-формы (или, более конкретно, двух полей INPUT Type='hidden'), если пользователь обращается к BACK после отправки формы.Сбросить форму на кнопку «Назад»

Я понимаю, что кнопка BACK не вызывает событие onload.

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

+0

Вы можете использовать файлы cookie с javascript, чтобы отметить, что пользователь был на этой странице раньше или заполнил форму до – Teneff

+0

, можете ли вы предложить код, i «Не знаю, с печеньем –

+0

Люди обычно этого не хотят. Это особенно неприятно, когда вы возвращаетесь с страницы с ошибкой. – ThiefMaster

ответ

7

при нажатии кнопки назад, onbeforeunload событие вызывается, так что вы можете попробовать что-то вроде

JQuery:

$('#form_id').submit(function(){ 
$(window).unload(function() { 
$('input[type="hidden"]').val("reset_value"); 
} 
}); 

JavaScript:

<form onsubmit="call_function();"> 

между ними 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"; 
    } 
    } 
} 
+1

Это не javascript, не так ли? –

+0

Это jquery .. плагин javascript .. в любом случае я включил код javascript также, пожалуйста, проверьте –

+0

, если просто использовать js, подумайте об использовании jquery, лучше работать с – Flo

0

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

-1

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

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

Дон 't беспокоить с помощью jquery, .attr('value') возвращает новое значение, а не оригинал

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

+0

Звучит как взломать побочные эффекты – mplungjan

Смежные вопросы