Радиокнопка не работает в Internet Explorer, но отлично работает в Firefox
У меня есть 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.
Есть идеи что это может быть? кнопки в основном отображают один из двух вариантов, тикет или электронное письмо, при нажатии на тикет он просто не отображается.
если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Спасибо
3 ответа
var tabs = document.getElementsByName("action_tab")
Первый, getElementsByName()
сломан в IE. Скорее использовать getElementsByTagName()
и / или getElementById()
, Или лучше используйте jQuery и $('[name=action_tab]')
,
Во-вторых, это звучит как <div name="action_tab">
и так далее. HTML <div>
элемент не имеет указанного name
атрибут, и я сомневаюсь, если обычай name
атрибут будет работать таким образом в IE с getElementsByName()
,
Вы не указываете, какой DOCTYPE вы используете (если есть), но, безусловно, с атрибутами XHTML должны быть значения, которые ваши checked
атрибут не имеет. Вы можете попробовать это:
<input type="radio" checked="checked" name="action_type" value="EmailActionDescription" onclick="toggle_action(this);"/><label>Email</label>
Поскольку вы не публикуете свой код toggle_action(), я могу только догадываться, что проблема в этой функции. И, возможно, в случае сбоя функции процедура выбора радиокнопки отменяется.
Для чего вы используете процедуру toggle_action()?