以下代码在IE中效果很好,但在FF或Safari中效果不佳。我无法为自己的生活找出原因。如果选择“禁用2个单选按钮”选项,则该代码应禁用单选按钮。如果选择“同时启用两个单选按钮”选项,则应启用单选按钮。这些都可以...
但是,如果您不使用鼠标在两个选项(“启用...”和“禁用...”)之间移动,则单选按钮似乎不会被禁用或正确启用,除非您单击其他任何位置在页面上(而不是在单选按钮上)。
如果有人有时间/好奇/有帮助,请将下面的代码粘贴到html页面中,然后将其加载到浏览器中。它在IE中效果很好,但问题在Windows XP上的FF(我的情况下为3)和Safari中表现出来。
<html>
<head>
<script language="javascript">
function SetLocationOptions() {
var frmTemp = document.frm;
var selTemp = frmTemp.user;
if(selTemp.selectedIndex >= 0) {
var myOpt = selTemp.options[selTemp.selectedIndex];
if(myOpt.attributes[0].nodeValue == '1') {
frmTemp.transfer_to[0].disabled = true;
frmTemp.transfer_to[1].disabled = true;
frmTemp.transfer_to[2].checked = true;
} else {
frmTemp.transfer_to[0].disabled = false;
frmTemp.transfer_to[1].disabled = false;
}
}
}
</script>
</head>
<body>
<form name="frm" action="coopfunds_transfer_request.asp" method="post">
<select name="user" onchange="javascript: SetLocationOptions()">
<option value="" />Choose One
<option value="58" user_is_tsm="0" />Enable both radio buttons
<option value="157" user_is_tsm="1" />Disable 2 radio buttons
</select>
<br /><br />
<input type="radio" name="transfer_to" value="fund_amount1" />Premium
<input type="radio" name="transfer_to" value="fund_amount2" />Other
<input type="radio" name="transfer_to" value="both" CHECKED />Both
<br /><br />
<input type="button" class="buttonStyle" value="Submit Request" />
</form>
</body>
</html>
若要使FF模仿使用键盘时IE的行为,可以在选择框上使用keyup事件。在您的示例中(我不喜欢这种方式附加事件处理程序,但这是另一个主题),就像这样:
<select name="user" id="selUser" onchange="javascript:SetLocationOptions()" onkeyup="javascript:SetLocationOptions()">
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。