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

问题描述:

我的问题很烦人,可能是非常愚蠢的事情,但我一直在绕过它,并没有找到解决方案。我在2个不同的页面调用这个部分观点:设置功能单击单选按钮在IE中不起作用

<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)); 
    }); 
}); 

我已经看到了这工作得很好,当我点击它单选按钮加载对应于所选状态的通知(即setNotificationSt atus)。问题是,当我的UI添加到单选按钮这样的:

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

这一切的代码,它工作在Firefox和Chrome完美的罚款,但在IE它不会做任何事情。就好像它不能识别鼠标点击一样。有趣的是,我在网站的另一部分或多或少具有相同的代码,并且IE浏览器运行良好。您是否有任何线索?

+0

我不知道是否有帮助,但在这里工作在我的IE8 - http://jsfiddle.net/Q2ueN/ – 2010-07-07 11:48:58

+0

是的,它适用于我在其他网页是不是那一个,我不明白为什么0x – vikitor 2010-07-08 11:02:04

我想尝试的几件事情:

在你的jQuery选择,尝试把引号的属性相匹配:

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

尝试使用jQuery的each()方法,让你的事件绑定像这样:

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

最后,尝试使用字母数字和下划线标识事物。第三个单选按钮在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" />

+0

谢谢你的建议,这是非常感谢,但我的问题还没有解决。我尝试了你所说的,我删除了页面中第三个不正常工作的按钮,以检查是否有问题,但是现在我没有收到其他两个按钮的任何内容(我之前没有收到它无论如何)......为什么微软希望在其他工作完美的时候强加他们的灾难性标准...... – vikitor 2010-07-07 08:58:08