重新打开浏览器后,我的选项有问题



在关闭并重新打开设置了"从我离开的地方继续"的浏览器后,我很难理解选项和单选按钮设置发生了什么。Chrome和Edge的行为方式相同。

我希望让javascript根据选项和单选按钮的显示方式运行,或者强制选项和单选按钮显示默认值(即匹配javascript认为设置的值(。

我在做什么:-
a(我将单选按钮更改为单选按钮2。我关闭浏览器并重新打开它。单选按钮指示单选按钮 1。Javascript 的行为也像选中单选按钮 1 一样。都还好。
b( 我将选项更改为选项 2,将单选按钮更改为单选按钮 2。我关闭浏览器并重新打开它。单选按钮指示单选按钮 1。Javascript 的行为也像选中单选按钮 1 一样。该选项继续显示为选项 2,但 javascript 指示选择了选项 1。
c( 我将单选按钮更改为单选按钮 2,将选项更改为选项 2。我关闭浏览器并重新打开它。单选按钮指示单选按钮 2。Javascript 的行为就像选中了单选按钮 1。该选项继续显示为选项 2,但 javascript 指示选择了选项 1。

这一切都出乎意料,我不明白如何强制选项和单选按钮指示其所选值。这只会在关闭并重新打开浏览器后发生。

我的代码在这里

<select id="sel">
<option value=1 selected>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
</select>
<p>Radio Buttons<br/>
<input type="radio" id="r1" name="rb" value="rb1" checked>&nbsp;Radio Button 1
<input type="radio" id="r2" name="rb" value="rb2">&nbsp;RadioButton 2
</p>
<span id="debug"></span>
<script>
debug();
function debug(){
var e=document.getElementById("sel");
var rb1val = document.getElementById("r1").checked;
document.getElementById("debug").innerHTML="Option "+e.options[e.selectedIndex].value+" is selected. Radio Button 1 is "+rb1val;
document.getElementById("r1").value;
}
</script>

经过多次搜索,我找到了不太可能的答案。

通过将元素包含在带有autocomplete="off"的表单中,问题消失了:-

<form autocomplete="off">
<select id="sel" onchange="debug()">
<option value=1 selected>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
</select>
<p>Radio Buttons<br/>
<input type="radio" id="r1" name="rb" value="rb1" checked onchange="debug()">&nbsp;Radio Button 1
<input type="radio" id="r2" name="rb" value="rb2" onchange="debug()">&nbsp;RadioButton 2
</p>
<span id="debug"></span>
</form>
<script>
debug();
function debug(){
var e=document.getElementById("sel");
var rb1val = document.getElementById("r1").checked;
document.getElementById("debug").innerHTML="Option "+e.options[e.selectedIndex].value+" is selected. Radio Button 1 is "+rb1val;
document.getElementById("r1").value;
}
</script>

最新更新