簡體   English   中英

重置后退按鈕上的表單

[英]Reset form on Back button

如果用戶在提交表單后返回,試圖找到一個優雅的解決方案來重置webform(或更具體地說,兩個INPUT Type='hidden'字段)。

我知道BACK按鈕不會觸發onload事件。

但有沒有辦法解決這個問題?

當按下后退按鈕時, 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";
     }
   }
}

您可以阻止默認提交來自觸發,ajax-post表單,然后取消設置不需要的字段並將位置更改為新頁面。 不是很好,但應該做的伎倆。

對於IE 8或更低版本,您可以重置表單: document.getElementById('formname').reset();

對於IE 9,Firefox,Chrome,您可以使用以下方法重置所需的字段: elementNodeHere.value = elementNodeHere.getAttribute('value');

不要打擾jquery, .attr('value')返回新值而不是原始值

(IE 7中的getAttribute僅返回新值,在IE 8中它返回NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM