如何在除了Internet Explorer以外的所有浏览器中隐藏单选按钮?

3
我有以下代码:

<label>
   <input type="hidden" name="styless" value="9">
   <input type="radio" style="display:none" >Qwerty
</label>

在除了Internet Explorer浏览器之外的所有浏览器上,这个功能都能正常工作。我该如何在IE浏览器中显示单选按钮,并使其在其他浏览器上保持隐藏?

在IE浏览器中,当我点击“Qwerty”时,点击事件不会被触发。因此,我想仅在IE中移除display:none


除了使用IE条件注释(仅适用于IE9及以下版本),您无法可靠地嗅探浏览器类型。 - symlink
2
@silviagreen 为什么您认为他使用jQuery? - Gediminas Masaitis
2个回答

1
通常情况下,您不应该尝试使页面行为与特定浏览器相关。我认为更好的解决方案是让所有浏览器在单击“Qwerty”文本时采取相同的操作方式。
您可以使用JavaScript来实现-将文本包装在元素中,并为其提供一个onclick事件,该事件将检查您的单选按钮。为了可靠地找到单选按钮,您应该给它一个id属性。然后,在单击事件上调用preventDefault,以避免任何不需要的行为(否则可能会发生)。
您最终的HTML应该如下所示:
<label>
   <input type="hidden" name="styless" value="9">
   <input type="radio" style="display:none" id="qwerty-radio-box">
   <span onclick="document.getElementById('qwerty-radio-box').checked = true; event.preventDefault();">Qwerty</span>
</label>

在你的问题中,你没有提到你的项目是否已经有JavaScript代码库。 如果有,你应该将JavaScript代码移到那里,而不是保留在此onclick事件属性中。 如果没有,并且这是唯一的用法,我认为将其留在此处是可以的。

谢谢大家的回答。 - Santhosh Krishna

0

您可以使用$.browser属性,您可以使用jQuery Migrate插件(适用于JQuery >= 1.9 - 在早期版本中,您只需使用它),然后执行以下操作:

if (!$.browser.msie){
// do something
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接