设置功能单击单选按钮在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浏览器运行良好。您是否有任何线索?
我想尝试的几件事情:
在你的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" />
谢谢你的建议,这是非常感谢,但我的问题还没有解决。我尝试了你所说的,我删除了页面中第三个不正常工作的按钮,以检查是否有问题,但是现在我没有收到其他两个按钮的任何内容(我之前没有收到它无论如何)......为什么微软希望在其他工作完美的时候强加他们的灾难性标准...... – vikitor 2010-07-07 08:58:08
我不知道是否有帮助,但在这里工作在我的IE8 - http://jsfiddle.net/Q2ueN/ – 2010-07-07 11:48:58
是的,它适用于我在其他网页是不是那一个,我不明白为什么0x – vikitor 2010-07-08 11:02:04