Javascript ASP.NET RadioButton列表和渐进式增强

Javascript ASP.NET RadioButton列表和渐进式增强,javascript,asp.net,radiobuttonlist,Javascript,Asp.net,Radiobuttonlist,我有一个RadioButtonList,它的AutoPostBack设置为True,并且正在服务器端处理: <asp:radiobuttonlist ID="myRBL" OnSelectedIndexChanged="MyRBL_SelectedIndexChanged" RepeatDirection="Horizontal" AutoPostBack="True" runat="server"> <asp:ListItem Selected="True"&

我有一个RadioButtonList,它的AutoPostBack设置为True,并且正在服务器端处理:

<asp:radiobuttonlist ID="myRBL" OnSelectedIndexChanged="MyRBL_SelectedIndexChanged"
    RepeatDirection="Horizontal" AutoPostBack="True" runat="server">
    <asp:ListItem Selected="True">Choice 1</asp:ListItem>
    <asp:ListItem>Choice 2</asp:ListItem>
</asp:radiobuttonlist>

禁用JavaScript的
。有人对此有详细的解决方案吗?

检查用户是否启用了javascript的唯一方法是从客户端

那么,最好是在客户端添加函数,而不是在服务器代码中添加函数。jQuery可以很好地处理这个问题,比如:

$(function() {
  $('input[type=radio]').click(myFunction);
});
如果不使用jquery,可以执行
document.getElementById()
等操作来分配单击处理程序


这样,如果客户端没有javascript,单选按钮将完全不受影响。

AutoPostBack在单击单选按钮后使用javascript回发。通过设置onclick属性,此行为将被覆盖,因此必须向click事件添加额外的事件处理程序

据我所知,在纯JavaScript中没有简单的方法可以做到这一点,因此我建议使用jQuery:

$('#radioButtonId').click(myFunction);

@爱尔兰酋长——也许我误解了。这不是重点吗?如果javascript被禁用,你就不想要onClick增强功能?我明白你的意思了。。。将它连接到body onload中?@IrishChieftain-是的,或者更好的方法是将它添加到外部脚本中。如果用户没有启用javascript,脚本甚至不会被加载。对不起,womp。由于基本问题仍然存在,所以未标记为答案-当JS被禁用时,无法从此控件进行回发。有什么想法吗?如果您自己添加onclick处理程序,则会替换由ASP.NET设置用于执行自动回发的onclick处理程序。在纯javascript中,添加(而不是替换)事件处理程序相当麻烦。再读一遍我的答案,我真的很努力地在那里描述它;-)我相信,还有其他方法可以向单击事件添加多个事件处理程序。在谷歌上搜索,会出现一堆关于不同方法的文章。是的,但我对浏览器的差异很谨慎,我是一个完全的JS新手。谢谢你的链接,+1:-)我将此标记为答案,因为它直接解决了我面临的核心问题。