Javascript 基于单选按钮选择禁用按钮

Javascript 基于单选按钮选择禁用按钮,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有以下asp.net代码,用户必须选择带有单选按钮的行,当没有选择单选按钮时,我需要使用jquery禁用该按钮,当选择单选按钮时,我需要再次启用该按钮 <asp:GridView ID="GrvOpenForApproval" runat="server" AutoGenerateColumns="False" Width="100%"> <Columns> <asp:BoundField Header

我有以下asp.net代码,用户必须选择带有单选按钮的行,当没有选择单选按钮时,我需要使用jquery禁用该按钮,当选择单选按钮时,我需要再次启用该按钮

<asp:GridView ID="GrvOpenForApproval" runat="server" 
        AutoGenerateColumns="False" Width="100%">
        <Columns>
              <asp:BoundField HeaderText="Dealer" DataField="Dealer.DealerNumber" />
            <asp:BoundField HeaderText="RequestNumber" DataField="RequestNumber" />
            <asp:BoundField HeaderText="Chassis"  DataField="Vehicle.Chassis"/>
            <asp:BoundField HeaderText="Commission" DataField="Vehicle.ComissionNumber" />
            <asp:BoundField HeaderText="Created" DataField="RequestDate" DataFormatString="{0:dd/MM/yyyy}" />
            <asp:BoundField HeaderText="Status"  DataField="CurrentStatus" />
            <asp:BoundField HeaderText="Comment" DataField="Comments" />
            <asp:TemplateField HeaderText="Select One">
            <ItemTemplate>
              <input name="RequestBaseId" type="radio" 
                        value='<%# Eval("RequesBaseId") %>' />
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
        <HeaderStyle CssClass="gridheader" />
    </asp:GridView>
    <br />
    <div class="clear hideSkiplink">
        <asp:Button runat="server" ID="BtnApproveSelected" 
            meta:resourcekey="BtnApproveSelectedResource" 
            onclick="BtnApproveSelectedClick"/>
    </div>
生成的html

<div>

    <table cellspacing="0" rules="all" border="1" id="MainContent_GrvOpenForApproval" style="width:100%;border-collapse:collapse;">

        <tr class="gridheader">

            <th scope="col">Dealer</th><th scope="col">RequestNumber</th><th scope="col">Chassis</th><th scope="col">Commission</th><th scope="col">Created</th><th scope="col">Status</th><th scope="col">Comment</th><th scope="col">Select One</th>

        </tr><tr>

            <td>&nbsp;</td><td>1</td><td>&nbsp;</td><td>&nbsp;</td><td>24/05/2012</td><td>Approval1</td><td>123</td><td>

              <input name="RequestBaseId" type="radio"  

                        value='1' />

            </td>

        </tr><tr>

            <td>DEAL-1</td><td>1</td><td>CH1</td><td>123C</td><td>24/05/2012</td><td>Approval1</td><td>12</td><td>

              <input name="RequestBaseId" type="radio"  

                        value='2' />

            </td>

        </tr><tr>

            <td>&nbsp;</td><td>1</td><td>&nbsp;</td><td>&nbsp;</td><td>24/05/2012</td><td>Approval1</td><td>123</td><td>

              <input name="RequestBaseId" type="radio"  

                        value='3' />

            </td>

        </tr><tr>

            <td>DEAL-1</td><td>1</td><td>CH1</td><td>123C</td><td>24/05/2012</td><td>Approval1</td><td>12</td><td>

              <input name="RequestBaseId" type="radio"  

                        value='4' />

            </td>

        </tr><tr>

            <td>DEAL-1</td><td>1</td><td>CH1</td><td>123C</td><td>24/05/2012</td><td>Approval1</td><td>12</td><td>

              <input name="RequestBaseId" type="radio"  

                        value='5' />

            </td>

        </tr>

    </table>

</div>

    <br />

    <div class="clear hideSkiplink">

        <input type="submit" name="ctl00$MainContent$BtnApproveSelected" value="Approve selected request" id="MainContent_BtnApproveSelected" disabled="disabled" class="aspNetDisabled" ClientID="BtnApproveSelected" />

    </div>

DealErrorRequestNumberCharsisCommissionCreatedStatus注释选择一个
2012年5月24日批准1123
DEAL-11CH1123C24/05/2012批准112
2012年5月24日批准1123
DEAL-11CH1123C24/05/2012批准112
DEAL-11CH1123C24/05/2012批准112

试试这个:

$('input[name="RequestBaseId"]').change(function() {
    if (!$(this).val()) {
        $("#BtnApproveSelected").prop("disabled", true);
    }
    else {
        $("#BtnApproveSelected").prop("disabled", false);
    }
});
您还需要在按钮中添加
ClientID

 <asp:Button runat="server" ID="BtnApproveSelected" ClientIDMode="Static"
        meta:resourcekey="BtnApproveSelectedResource" 
        onclick="BtnApproveSelectedClick"/>


您还可以通过使用类使
输入[name=“RequestBaseId”]
选择器更好。

注意基于webkit的浏览器,这些浏览器不支持单选按钮上的更改事件!如果是这种情况,解决方法是使用
click()
而不是
change()
——或者至少——这是我选择的解决方法,无论正确与否。请您编辑您的问题以包含ASP代码生成的HTML。我刚刚更新了我的答案——这是我的错误。使用
clientmode=“Static”
,而不是
ClientID=“xxx”
 <asp:Button runat="server" ID="BtnApproveSelected" ClientIDMode="Static"
        meta:resourcekey="BtnApproveSelectedResource" 
        onclick="BtnApproveSelectedClick"/>