在页面刷新时清除输入字段 (Microsoft Edge)
clear input fields on page refresh (Microsoft Edge)
我只是一个初学者,但有人可以帮助我吗?
我有一个带有几个输入字段的 HTML 页面,我希望在刷新页面时清除这些字段。
我的 HTML 看起来像这样:
<input type='text' id='input_field' value=''>
然后,在我的脚本开头,是这样的:
document.getElementById('input_field').value = '';
这在 Firefox 中运行良好;页面刷新时,该值清空,字段清空
它在 Microsoft Edge 中不起作用;刷新页面时,实际值清空,但字段内容保留
我也试过将我的输入元素包装在表单元素中,并使用 JavaScript 重置表单,但结果是一样的。
如您所见,我将 value 属性保留在 HTML 中,但仅用于演示和实验目的。省略它在任何一个浏览器中都没有效果。但是,如果我保留 HTML 属性但省略 JavaScript 语句,则两种浏览器的行为不同:在 Edge 中,字段 "catch up" 的内容为实际值(即字段清除), 但仅在页面刷新两次后;在 Firefox 中,无论页面刷新多少次,这根本无法更新值。
最后,如果我以任何方式编辑源代码然后在 Edge 中重新加载页面,它会清空实际值并清除该字段,但仅限于初始重新加载时。之后,问题仍然存在。这让我想知道这是不是缓存问题。
有什么帮助或建议吗?
将属性 autocomplete="off"
添加到 <input>
标签。
<input autocomplete="off">
这可能不适用于所有浏览器。请参阅此站点以获取浏览器支持图表:https://caniuse.com/#feat=input-autocomplete-onoff
如果它不能在 Edge 上运行,请尝试 fizzix 在此 fiddle 上提供的解决方案。
原始 post Chrome Browser Ignoring AutoComplete=Off.
首先,感谢您的回复。
我试过autocomplete='off'
(对不起我忘了说了),但好像没用。
不过,就在此处查看回复之前,我决定尝试另一个实验。我在页面上添加了一个按钮,单击该按钮会调用包含 JavaScript .value = ''
语句的函数。
无论出于何种原因,这都很好;它清空了值并清除了字段,这让我想到将 "reset" 绑定到特定的 HTML 事件可能是关键。我尝试了一些没有用的东西,但最后我只是替换了这个:
document.getElementById('input_field').value = '';
。 . .有了这个:
window.onload = function() {
document.getElementById('input_field').value = '';
}
。 . .就是这样。每次我在 Firefox 或 Edge 中刷新页面时,该值都被清空并且该字段被清除。
我不确定为什么会这样(就像我说的,我才刚刚开始使用这些东西),但就是这样。
如果输入在表单元素 <form id="example"> ... </form>
内,那么您可以执行类似 document.getElementById('example').reset()
的操作。您可以在 window.onload
.
中调用它
您可以在值属性中的单引号之间添加space
希望这对刷新页面有用
我只是一个初学者,但有人可以帮助我吗?
我有一个带有几个输入字段的 HTML 页面,我希望在刷新页面时清除这些字段。
我的 HTML 看起来像这样:
<input type='text' id='input_field' value=''>
然后,在我的脚本开头,是这样的:
document.getElementById('input_field').value = '';
这在 Firefox 中运行良好;页面刷新时,该值清空,字段清空
它在 Microsoft Edge 中不起作用;刷新页面时,实际值清空,但字段内容保留
我也试过将我的输入元素包装在表单元素中,并使用 JavaScript 重置表单,但结果是一样的。
如您所见,我将 value 属性保留在 HTML 中,但仅用于演示和实验目的。省略它在任何一个浏览器中都没有效果。但是,如果我保留 HTML 属性但省略 JavaScript 语句,则两种浏览器的行为不同:在 Edge 中,字段 "catch up" 的内容为实际值(即字段清除), 但仅在页面刷新两次后;在 Firefox 中,无论页面刷新多少次,这根本无法更新值。
最后,如果我以任何方式编辑源代码然后在 Edge 中重新加载页面,它会清空实际值并清除该字段,但仅限于初始重新加载时。之后,问题仍然存在。这让我想知道这是不是缓存问题。
有什么帮助或建议吗?
将属性 autocomplete="off"
添加到 <input>
标签。
<input autocomplete="off">
这可能不适用于所有浏览器。请参阅此站点以获取浏览器支持图表:https://caniuse.com/#feat=input-autocomplete-onoff
如果它不能在 Edge 上运行,请尝试 fizzix 在此 fiddle 上提供的解决方案。
原始 post Chrome Browser Ignoring AutoComplete=Off.
首先,感谢您的回复。
我试过autocomplete='off'
(对不起我忘了说了),但好像没用。
不过,就在此处查看回复之前,我决定尝试另一个实验。我在页面上添加了一个按钮,单击该按钮会调用包含 JavaScript .value = ''
语句的函数。
无论出于何种原因,这都很好;它清空了值并清除了字段,这让我想到将 "reset" 绑定到特定的 HTML 事件可能是关键。我尝试了一些没有用的东西,但最后我只是替换了这个:
document.getElementById('input_field').value = '';
。 . .有了这个:
window.onload = function() {
document.getElementById('input_field').value = '';
}
。 . .就是这样。每次我在 Firefox 或 Edge 中刷新页面时,该值都被清空并且该字段被清除。
我不确定为什么会这样(就像我说的,我才刚刚开始使用这些东西),但就是这样。
如果输入在表单元素 <form id="example"> ... </form>
内,那么您可以执行类似 document.getElementById('example').reset()
的操作。您可以在 window.onload
.
您可以在值属性中的单引号之间添加space
希望这对刷新页面有用