2016-08-05 45 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