页面刷新时更改HTML下拉列表值

页面刷新时更改HTML下拉列表值,html,firefox,select,Html,Firefox,Select,好的,这是一个很奇怪的,以前从未见过 我有一个简单的html下拉列表,没有附加js 这是使用html4xhtml1吗?使用过渡doctype。 顺便提一下我试着摆脱斜杠,但没有,同样的结果/ <select id="myDropdown" name="myDropdown"> <option value="option1" selected="selected">Contact &#x2F; Email Customer Care</option> &

好的,这是一个很奇怪的,以前从未见过

我有一个简单的html下拉列表,没有附加js

这是使用html4xhtml1吗?使用过渡doctype。 顺便提一下我试着摆脱斜杠,但没有,同样的结果/

<select id="myDropdown" name="myDropdown">
<option value="option1" selected="selected">Contact &#x2F; Email Customer Care</option>
<option value="option2">Group &#x2F; Private Tour</option>
<option value="option3">Option3</option>
<option value="option4">Option4</option>
<option value="option5">Option5</option>
</select>
当我执行强制重新加载ctrl+f5或ctrl+shift+R时,它会在选项1框中加载正确的选项

但是,如果我点击纯F5进行软刷新,则仅当选择了选项1时,才会将选项2加载为所选选项。如果选择了选项3、4或5,则不会更改。但如果选择了选项1,则每次页面刷新时都会更改为选项2

知道为什么会这样吗?这是非常令人沮丧的,我没有看到任何关于它的网上


感谢

这似乎是一种奇怪的Firefox行为,我可以在Firefox的最新版本中看到它。我建议记录错误/发送反馈

但解决这个问题相当简单。。。如果您希望在页面加载时始终重置下拉列表,那么在组合后只需编写一段简单的脚本即可强制执行该操作,并且不会对其他浏览器产生负面影响

<script>
// console.log(document.getElementById("myDropdown").value)
document.getElementById("myDropdown").selectedIndex = 0
</script>

在这里没有什么区别

这似乎是一个奇怪的Firefox行为,我可以在Firefox版本中看到它,包括27个最新版本。我建议记录错误/发送反馈

但解决这个问题相当简单。。。如果您希望在页面加载时始终重置下拉列表,那么在组合后只需编写一段简单的脚本即可强制执行该操作,并且不会对其他浏览器产生负面影响

<script>
// console.log(document.getElementById("myDropdown").value)
document.getElementById("myDropdown").selectedIndex = 0
</script>
此处没有区别

与中的想法相同,但自动化程度更高,假设您可以在页面中的所有选择器上使用相同的属性,否则将限制使用类或id:

<script>
function fix_selectors_positions()
{
    selectors = document.querySelectorAll("select");
    selectors.forEach(item =>
        item.selectedIndex = item.getAttribute("default_pos")
    );
}
window.onload = fix_selectors_positions;
</script>
然后使用选择器上的属性default_pos:

<select default_pos="0">[...]
与中的想法相同,但自动化程度更高,假设您可以在页面中的所有选择器上使用相同的属性,否则将限制使用类或id:

<script>
function fix_selectors_positions()
{
    selectors = document.querySelectorAll("select");
    selectors.forEach(item =>
        item.selectedIndex = item.getAttribute("default_pos")
    );
}
window.onload = fix_selectors_positions;
</script>
然后使用选择器上的属性default_pos:

<select default_pos="0">[...]

哪个浏览器?在OSX上的Safari和Chrome上,我都无法重新说明这一点,显然这只是Firefox的问题。为什么我不能编辑我自己的帖子?哪个浏览器?在Safari和Chrome上,我都无法在OSX上重复这一点,显然这只是Firefox的问题,为什么我不能编辑我自己的帖子?谢谢你的回答。我知道我可以使用JS,但我想知道为什么它会这么做。如果它只是一个FF bug tho,那么它最终有望消失。我不知道如何做所有的错误记录,等等。关于所选的问题,这是针对html5的吗?还是仅仅是html4?我知道xhtml1是selected=selectedBTW,即使我完全删除了selected=selected相同的行为结果[但由于它从2011年开始开放,我怀疑你还需要上面的JS来修复它一段时间;谢谢你的帮助,希望我能给你更多的分数。你很有知识。一切都很好…所以是尽你所能提供帮助,并学习感谢你的答案。我知道我可以使用JS,但我想知道它为什么这么做。如果它只是一个FF bug tho,那希望最终会消失。我不知道如何做所有的bug日志记录,等等…关于所选的问题,是针对html5?还是仅仅针对html4?我知道xhtml1是selected=selectedBTW,即使我完全删除selected=selected相同的行为结果。我已经添加了对Bugzilla的引用[但由于它从2011年开始开放,我怀疑您还需要上面的JS来修复它一段时间;感谢您的帮助,希望我能给您更多的分数。您非常博学。一切都很好……因此,尽可能地帮助您,并学习