如果选择其中一个,则禁用Asp.net RadioButtonList中的其他RadioButton

时间:2016-07-31 13:26:36

标签: javascript c# jquery asp.net

当选择其中一个时,我需要禁用其他asp.net单选按钮。有三个单选按钮。例如,选择现金单选按钮,其他两个来自listitem应该被禁用。我做了一些研究和当第三个被选中时,我确实禁用了另外两个。但是在我的代码页面后面,它给了我选择的无线按钮的空值。这是我的代码:

我的.aspx

 <div class="col-sm-4" style="padding-top:4px ; margin-top:-8px">
    <asp:RadioButtonList runat="server" ID="loanTypeCheck" CssClass="pull-right" RepeatDirection="Horizontal">
    <asp:ListItem Value="Cash" Text="&nbsp;&nbsp;Cash&nbsp;&nbsp;"/>
    <asp:ListItem Value="Non-Cash" Text="&nbsp;&nbsp;Non-Cash&nbsp;&nbsp;" />
    <asp:ListItem Value="Dharauti" Text="&nbsp;&nbsp;Dharauti&nbsp;&nbsp;" />
      
    </asp:RadioButtonList>
</div>

我的代码

protected void SaveButton_Click(object sender, EventArgs e)
{
    if (IsFormValidForSave())
    {
        var loanReceipt = GetLoanReceiptFromForm();
        var transactionsDetails = new List<TransactionDetail>();

        if (loanTypeCheck.SelectedValue == "Cash")
        {
           //
        }
    }
}

这是我禁用单选按钮的JavaScript

$('input[type=radio]').change(function () {
    $("#<%=loanTypeCheck.ClientID   %>").find('input').prop('disabled', true);
});

一切都在UI中工作,但我在后面的代码中的loanTypeCheck.SelectedValue中得到null值。

1 个答案:

答案 0 :(得分:1)

您可以使用:not(:checked)选择器禁用未选中的单选按钮:

$('#<%= loanTypeCheck.ClientID %>').change(function () {
    $(this).find('input[type=radio]:not(:checked)').prop('disabled', true);
});

保持选中的单选按钮启用将允许回发所选的值。