我迷失了为什么我的收音机盒格式在Firefox 7.0.1中不起作用,但在IE,Chrome和Safari中工作正常。问题是“已检查”的无线电盒没有重置为HTML显示的内容。
例如,如果我将温度设置从“f”更改为“c”并按下“选择”,则操作脚本会看到正确的值。然后我按回到FF并刷新窗口,仍然选择“c”。如上所述,这在其他浏览器中可以正常工作,但不能在FF中使用。
我很难相信这个基本功能在FF中被打破了,但HTML很直接。
- 杰夫
<form name="form1" method="POST" action="weather_uom_set.php">
<h3>Precipitation</h3>
<input type="radio" name="precip" value="in" checked="checked"/> Inches (")<br/>
<input type="radio" name="precip" value="mm" /> Millimeters (mm)<br/>
<h3>Temperature</h3>
<input type="radio" name="temp" value="f" checked="checked"/> Fahrenheit (°f)<br/>
<input type="radio" name="temp" value="c" /> Celsius (°c)<br/>
<input type="submit" value="Submit" />
</form>
答案 0 :(得分:1)
这可能是因为Firefox记住以前的表单提交值,它可以覆盖您在HTML中定义的任何默认选项。此外,即使你没有在这里说明,我也想指出Javascript也可以覆盖默认的HTML行为,所以如果你有一个脚本在运行,请确保它也没有设置/覆盖默认值。
答案 1 :(得分:0)
是的,这个基础在Firefox中被打破:https://stackoverflow.com/a/8779735/370290
答案 2 :(得分:0)
我最初错误地在“否”框中设置了checked = false,而不是在“是”框中设置checked =“true”。
但是,您可能会考虑我提出的类似修复,以确保您在页面加载时获得所需的值:
<input type="radio" name="mybox" id="mybox_yes" value="1">
<input type="radio" name="mybox" id="mybox_no" checked="checked" value="0">
<script>
var mybox = 0; // value 1 or 0 inserted with server side script
if(mybox == 1){
var fix_checkbox = function(){
document.getElementById("mybox_yes").checked=true;
};
}
else
{
var fix_checkbox = function(){
document.getElementById("mybox_no").checked=true;
};
}
setTimeout(fix_checkbox,1000);
</script>
最好做逻辑服务器端,然后只输出你想要的行:
<script>
setTimeout(function(){document.getElementById("mybox_no").checked=true;},1000);
</script>