我已經在網上搜索,但找不到任何解決方案。 當我點擊'samplepage.php'上的'提交'按鈕時,我將頁面重定向到'newpage.php'頁面。當用戶點擊瀏覽器的後退按鈕時,我想重置'samplepage.php'表單值。現在它保留了所有的文本框值,單選按鈕和複選框選擇。如果有任何建議,請讓我知道嗎?謝謝你的幫助。重置後退按鈕上的表格
這是我的重定向php代碼。
header ("location:newpage.php);
我已經在網上搜索,但找不到任何解決方案。 當我點擊'samplepage.php'上的'提交'按鈕時,我將頁面重定向到'newpage.php'頁面。當用戶點擊瀏覽器的後退按鈕時,我想重置'samplepage.php'表單值。現在它保留了所有的文本框值,單選按鈕和複選框選擇。如果有任何建議,請讓我知道嗎?謝謝你的幫助。重置後退按鈕上的表格
這是我的重定向php代碼。
header ("location:newpage.php);
您無法使用服務器端代碼觀看瀏覽器的後退按鈕。
需要Javascript和jQuery用在如「popstate」一知半解和「pushState的」舞臺
jQuery對此沒有必要。 :/ – Snuffleupagus 2012-03-01 21:37:25
它不是'必需的',但是OP對客戶端代碼有明顯的理解,您不會推薦一個庫,也可能是一個polyfill? – Relic 2012-03-01 21:40:16
也許,與其向人們提供一個4線解決方案的90k庫,我們應該考慮人們有思想能力;如果他們在這裏想要傳遞代碼而沒有理解它是如何工作的,那麼他們在錯誤的地方開始。 – Snuffleupagus 2012-03-01 21:47:15
清除在頁面加載的值。
<input type="text" id="ClearIt" value=""/>
將此放在口主體標籤:
onload="document.getElementById('ClearIt').value=''"
這事關係到瀏覽器。
您可以清空輸入在最後時刻(提交前),並把值一些隱藏的領域...
你必須清除它在頁面加載如果你真的想這樣做。如果您有多個控件,則需要在表單中循環以清除它。假設他們所有項目...
var elems = document.getElementsByTagName("input")
for (var i=0;i<elems.length;i++)
{
elems[i].value = '';
}
它讓所有的輸入控件,遍歷所有這些,將它們的值空白。 您可以通過設置.checked取決於它們的類型來擴展它以用於單選按鈕/複選框。
只是我的兩分錢問題,雖然,這是一個壞主意,清除表單。瀏覽器保留它所做的狀態是有原因的。
例如,如果服務器端的驗證失敗,我不得不返回並重新輸入所有內容,我不會很高興。 :(
你忘死()
header ("location:newpage.php");
die();
您也可以嘗試重置$ _ POST,$ _ GET和$ _SESSION瓦爾
unset($_POST,$_SESSION, $_GET);
header ("location:newpage.php);
die();
更新:剛剛看了你想在歷史背景上取消設置 ,我沒有意識到在我的 上面的代碼中...
您將不得不ww請使用一些標記代碼來清除與輸入字段相關的 變量並選擇表格的列表 。
無論如何。JS
function clearForm(formIdent)
{
var form, elements, i, elm;
form = document.getElementById
? document.getElementById(formIdent)
: document.forms[formIdent];
if (document.getElementsByTagName)
{
elements = form.getElementsByTagName('input');
for(i=0, elm; elm=elements.item(i++);)
{
if (elm.getAttribute('type') == "text")
{
elm.value = '';
}
}
elements = form.getElementsByTagName('select');
for(i=0, elm; elm=elements.item(i++);)
{
elm.options.selectedIndex=0;
}
}
// Actually looking through more elements here
// but the result is the same.
else
{
elements = form.elements;
for(i=0, elm; elm=elements[i++];)
{
if (elm.type == "text")
{
elm.value ='';
}
}
}
}
function addEvent(elm, strEvent, fnHandler)
{
return (elm.addEventListener
? elm.addEventListener(strEvent, fnHandler, false)
: elm.attachEvent('on'+strEvent, fnHandler)
);
}
在表單股利
<script type="text/javascript">
// <![CDATA[
var el = document.createElement("input");
el.setAttribute("id", "clearButton");
el.setAttribute("type", "button");
el.setAttribute("value", "Clear");
document.getElementById("FormDiv").appendChild(el);
addEvent(el, 'click', function(){ clearForm('form_name');});
// ]]>
</script>
另外,您也可以使用HTML事件「onunload的」做同樣的事情海報建議之前。從你的角度來看,在你開火的時候可能並不重要。
你在做什麼網頁瀏覽器測試? – user17753 2012-03-01 21:30:42
你可以在'onload'事件中使用窗體的'reset()'方法... – Yaniro 2012-03-01 21:31:43
我必須支持所有的瀏覽器。 – nav100 2012-03-01 21:35:01