单选按钮不能在Internet Explorer中工作,但在Firefox中工作正常

时间:2010-05-27 11:27:11

标签: javascript html rhtml

我有这样的HTML代码:

function toggle_action(type) {
var tabs = document.getElementsByName("action_tab")
for(var i = 0 ; i < tabs.length; i++){
    //alert(" i = " + i + " length=" + tabs.length );
    if(tabs[i].id == type.value){
        tabs[i].style.display='inline';
    }else{
        tabs[i].style.display='none';
    }
};
}

一          

<div id="action_types">
   <input type="radio" checked name="action_type" value="EmailActionDescription"  onclick="toggle_action(this);"/><label>Email</label>
   <input type="radio" name="action_type" value="TicketActionDescription" onclick="toggle_action(this);"/><label>Ticket</label>
</div>

它在Firefox中运行良好但在Internet Explorer中不起作用。

任何想法可能是什么?按钮基本上显示2个选项之一,票证或电子邮件,当点击它没有显示的票证时。

如果您需要任何进一步的信息,请告诉我。

感谢

3 个答案:

答案 0 :(得分:1)

您没有说明您正在使用哪个DOCTYPE(如果有),但当然XHTML属性必须包含您的checked属性所没有的值。你可以试试这个:

<input type="radio" checked="checked" name="action_type" value="EmailActionDescription"  onclick="toggle_action(this);"/><label>Email</label>

答案 1 :(得分:1)

var tabs = document.getElementsByName("action_tab")

首先,getElementsByName()在IE中被破坏了。而是使用getElementsByTagName()和/或getElementById()。或者更好的是,使用jQuery$('[name=action_tab]')

其次,这听起来像<div name="action_tab">等等。 HTML <div>元素没有指定的name属性,我怀疑自定义name属性是否会在getElementsByName()的IE中以这种方式工作。

答案 2 :(得分:0)

由于你没有发布你的toggle_action()代码,我只能猜测问题出在那个函数中。并且可能如果函数失败,则取消单选按钮选择例程。

你使用toggle_action()例程做什么?