[英]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.