在回发后禁用单选按钮失去价值

Ale*_*pin 13 javascript asp.net

我有两个单选按钮,在页面加载时使用javascript禁用.RadioButton1默认情况下已选中.当我单击按钮进行回发时,RadioButton1不再检查.

谁知道为什么?

这是我的代码示例.后面的代码是空的.

<asp:RadioButton ID="RadioButton1" runat="server"  GroupName="group" Checked="true"/>
<asp:RadioButton ID="RadioButton2" runat="server" GroupName="group" />
<asp:Button ID="Button1" runat="server" Text="Button"></asp:Button>
<script type="text/javascript">
    window.onload = function () {
        var RadioButton1 = document.getElementById('<%= RadioButton1.ClientID %>');
        var RadioButton2 = document.getElementById('<%= RadioButton2.ClientID %>');

        RadioButton1.disabled = true;
        RadioButton2.disabled = true;
    };
</script>
Run Code Online (Sandbox Code Playgroud)

Lad*_*nka 12

这是HTML的行为,而不是ASP.NET.将input元素标记为已禁用后,将不再在请求中发布.对于文本字段,可以通过使用Readonly insted of Disabled来避免这种情况,但我认为它不适用于复选框或单选按钮.如果您仍想发布该值,则必须将其发送到与单选按钮相关的隐藏字段中,并在服务器上手动处理.

编辑:

在这里,您可以阅读有关禁用和只读元素以及表单提交的信息:

禁用控制:

残疾人控制不能成功.

只读控件:

只读元素可能会成功.

表格提交:

成功控制对提交有效.每个成功的控件都将其控件名称与其当前值配对,作为提交的表单数据集的一部分.必须在表单元素中定义成功的控件,并且必须具有控件名称.

然而:

  • 已禁用的控件无法成功.