2016-08-05 41 views
1

我只是一個初學者,但有人可以幫我嗎?頁面刷新時清除輸入字段(Microsoft Edge)

我有一個HTML頁面,有幾個輸入字段,我希望字段在頁面刷新時被清除。

我的HTML看起來像這樣:

<input type='text' id='input_field' value=''> 

然後,朝我的劇本的開頭,有這樣的:

document.getElementById('input_field').value = ''; 

這工作正常,在Firefox;當頁面被刷新時,該值被清空並且該字段被清除。

它在Microsoft Edge中不起作用;當頁面刷新時,實際值將被清空,但字段的內容仍然存在。

我也嘗試在表單元素中包裝我的輸入元素,並使用JavaScript重置表單,但結果相同。你可以看到,我在HTML中保留了value屬性,但僅用於演示和實驗的目的。忽略它在任一瀏覽器中都不起作用。但是,如果我保留HTML屬性而忽略JavaScript語句,則兩種瀏覽器的行爲都不相同:在Edge中,字段的內容「趕上」實際值(即字段清除),但僅在頁面刷新後兩次;並且在Firefox中,無論頁面刷新多少次,都無法更新該值。

最後,如果我以任何方式編輯源代碼,然後在Edge中重新加載頁面,它將清空實際值並清除該字段,但僅在初始重新加載時清除該字段。之後,問題依然存在。這讓我懷疑它是否是緩存問題。

任何幫助或建議?

+0

你能告訴我們你的HTML頁面嗎? –

+0

您希望爲開發目的或在最終生產環境中清除值?如果這是爲了最終的生產環境,爲什麼? – Tigger

回答

0

首先,感謝您的回覆。

我曾試過autocomplete='off'(對不起,我忘了提及那個),但它似乎沒有工作。

雖然在檢查回覆之前,我決定嘗試另一個實驗。我在頁面上添加了一個按鈕,點擊後會調用一個包含JavaScript .value = ''語句的函數。

無論出於何種原因,這工作得很好;它清空了該值並清除了該字段,這讓我認爲將「重置」綁定到特定的HTML事件可能是關鍵。我嘗試了一些不起作用的東西,但最後我只是取而代之:

document.getElementById('input_field').value = ''; 

。 。 。與此:

window.onload = function() { 
    document.getElementById('input_field').value = ''; 
    } 

。 。 。並做到了。每次在Firefox或Edge中刷新頁面時,該值都將被清空,並且該字段將被清除。

我不知道爲什麼這樣工作(就像我說的,我剛剛開始使用這個東西),但它是。

2

嘗試將輸入的參數autocomplete="off"添加到輸入中。

<input autocomplete="off"> 

這可能不適用於所有瀏覽器。 如果它不在Edge上工作,請嘗試通過fizzix在fiddle上提供的解決方案。 原文Chrome Browser Ignoring AutoComplete=Off

+0

謝謝。正如我剛剛發佈的答案中指出的那樣,'autocomplete ='off''似乎不起作用,但它也是我的第一個預感。不過,我會看看小提琴。 – TeRrIrAoLr