0

我试图在某个调查中显示答案,就像被调查者查看原始调查一样。但是,在查看时,我不希望浏览器允许更改 RadioButtonList 中的选定选项。有没有办法使 RadioButtonList 只读而不使用radioButtonList1.Enabled = false

我已经尝试子类化 RadioButtonList 并向其添加一个Fixed属性,该属性只允许更改所选值Fixed = false,但它不会阻止用户更改值;如果 RadioButtonList 有,它只会将其恢复为原始值AutoPostBack = true,并且我想完全避免使用回发。

我考虑过将图形用于选中/未选中的单选按钮并将其编码为纯 HTML、字符串和捆线,但我希望有更好的方法。有任何想法吗?

4

2 回答 2

1

如果您禁用单选按钮元素,它们将显示为灰色,并且表单看起来与原始表单不同。

作为“禁用”的替代品,如果用户尝试更改它,您可以让 javascript 恢复该值。jQuery click 处理程序同时处理键盘和鼠标选择:

    <script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
    <script type="text/javascript">
        $(function(){ 
            //save list of checked radio buttons
            var checked = $('table input:radio:checked'); 

            $("table input:radio").click(function() { 
                //go through list and re-check initial checks
                $.each(checked, function() { 
                    this.checked=true; 
                }); 
            });

        }); 

    </script>
    <asp:RadioButtonList runat="server" ID="rbl" >
        <asp:ListItem Text="Item1" />
        <asp:ListItem Text="Item2" Selected="True"  />
        <asp:ListItem Text="Item3"  />            
    </asp:RadioButtonList>
于 2010-08-25T15:32:29.197 回答
0

只需使用如下代码

  <script type="text/javascript">
    $(function(){ 
        $("#rbl input:radio").attr("disabled", "true");

    }); 

</script>
<asp:RadioButtonList runat="server" ID="rbl" >
    <asp:ListItem Text="Item1" />
    <asp:ListItem Text="Item2" Selected="True"  />
    <asp:ListItem Text="Item3"  />            
</asp:RadioButtonList>
于 2013-03-22T06:45:50.657 回答