RadioButton虽然没有选择,但它有价值

时间:2012-03-15 19:46:25

标签: javascript jquery asp.net

嗨专家请看这段代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <table border="1" cellpadding="8" cellspacing="0" width="700px" style="background-color: Aqua">
            <tr>
                <td style="direction: rtl">
                    &nbsp;
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
                <td style="direction: ltr">
                   F1                    </td>
            </tr>
            <tr>
                <td style="direction: rtl">
                    <asp:DropDownList ID="Drp_1" runat="server" ClientIDMode="Static">
                        <asp:ListItem Value="1">Head of household</asp:ListItem>
                        <asp:ListItem Value="2">Spouse</asp:ListItem>
                        <asp:ListItem Value="3">Child</asp:ListItem>
                    </asp:DropDownList>
                </td>
                <td>
                    F2
                </td>
            </tr>
            <tr>
                <td style="direction: rtl">
                    <asp:RadioButtonList ID="Rad_7" runat="server" ClientIDMode="Static">
                        <asp:ListItem Text="1" Value="1"></asp:ListItem>
                        <asp:ListItem Text="2" Value="2"></asp:ListItem>
                        <asp:ListItem Text="3" Value="3"></asp:ListItem>
                        <asp:ListItem Text="4" Value="4"></asp:ListItem>
                    </asp:RadioButtonList>
                </td>
                <td>
                    F3
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                    <asp:Button ID="btn" runat="server" Height="44px" Text="Submit" ClientIDMode="Static"
                        Width="207px" />
                </td>
            </tr>
        </table>
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
    <ProgressTemplate>
        <h1 style="color: Green">
            Progress ...
        </h1>
    </ProgressTemplate>
</asp:UpdateProgress>

我使用这个jQuery代码:

    <script type="text/javascript">

    function pageLoad() {
        $(document).ready(function () {
            $("#Drp_1").on("change", function () {
                if ($(this).val() != null && $(this).val() == 2) {   //<<<<< This Line
                    if ($('#Rad_7 input').val() != null && $('#Rad_7 input').val() > 1 && $('#Rad_7 input').val() != 2) {
                        alert('Wrong option');
                    }
                }
            }).change();
        });
    }
</script>

问题是当我在指定的脚本行中使用断点时,当我使用立即窗口时,此代码$('#Rad_7 input').val()它返回1,尽管我没有在{{1}中选择任何选项}。我的错在哪里?

感谢

1 个答案:

答案 0 :(得分:2)

无论是否选中,

$('#Rad_7 input').val()都会获得第一个单选按钮value。由于第一个单选按钮的值为1,您看到的相同。

要获取选中的单选按钮值,请使用此功能。

$('#Rad_7 input:checked').val();

如果未检查组中的单选按钮,则会给出undefined