设置功能单击单选按钮在IE中不起作用

时间:2010-07-06 16:44:46

标签: jquery internet-explorer

我的问题非常烦人,可能是一些非常愚蠢的东西,但我一直在解决这个问题,并没有找到解决方案。我在2个不同的页面中调用了这个局部视图:

<div id="NotificationStatusSuspensionDiv">     
     <p>
        <strong><%= Html.Label("Status :") %> </strong><br />

        <input type="radio" name="NotificationStatusSuspension" id="statusA" value="A" checked="checked" />
        <label for="statusA">Active</label>
        <input type="radio" name="NotificationStatusSuspension" id="statusN" value="N" />
        <label for="statusN">Not Active</label>
     </p>
 </div>    

问题是在外部javascript文件的document.ready方法中我这样做:

  $('input:radio[name="NotificationStatusSuspension"]').each(function() {
    $(this).click(function() {
           setNotificationStatus($(this));
    });
});

我已经看到这很好用,当我点击radiobutton时,它会加载与所选状态相对应的通知(这就是setNotificationStatus所做的)。问题是当我将UI添加到radiobutton时,如下所示:

$('#NotificationStatusSuspensionDiv').buttonset();

使用所有这些代码,它在firefox和Chrome中运行得非常好,但在IE中它没有做任何事情。就好像它无法识别鼠标点击一样。有趣的是,我在网站的另一部分或多或少有相同的代码,它与IE的工作正常....你有任何线索吗?

1 个答案:

答案 0 :(得分:1)

我会尝试一些事情:

在jQuery选择器中,尝试在属性周围加上引号以匹配:

$('input:radio[name="NotificationStatus"]')

尝试使用jQuery的each()方法,因此您的事件绑定如下:

$('input:radio[name="NotificationStatus"]').each(function(){
  $(this).click(function(){
    alert($(this).val());
  });
});

最后,尝试使用字母数字和下划线来识别ID。第三个单选按钮在ID名称中有%符号,我不确定这是不是很好。当IE看到它时,它可能会失败。

PS:为了清晰(和标准),您可能希望删除属性中等号周围的空格,以及在自闭斜杠之前添加空格。例如,更改:

<input type="radio" name="NotificationStatus" id="statusA" value = "A" checked = "checked"/>

<input type="radio" name="NotificationStatus" id="statusA" value="A" checked="checked" />