jquery slideDown / slideUp将所有单选按钮值视为相同

时间:2012-12-17 23:43:38

标签: jquery

我已经使用了几次,它通常效果很好。但是,在我最近的使用中,隐藏的div会滑下来很好,但不会再回来了。单击“是”单选按钮时应该向下滑动,单击“否”时单向向下滑动。此时,无论单击单选按钮,它都会向下滑动,并且不会向上滑动。我认为它总是看到“是”值..

这是html:

    <div id="AliasSectionTop">
        Have you ever been known by another name (maiden name, name change, etc)?
        <input type="radio" value="Yes" name="aliasName" />Yes
        <input type="radio" value="No" name="aliasName" />No
    </div>

    <div id="AliasSectionBottom" class="hidden">

        @for (var i = 0; i < 5; i++)
        {
            <div class="formGroup">
                <div class="editor-label">
                    @Html.Label("First Name")
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.PersonAliasModel[i].FirstNameAlias)
                </div>
            </div>

            <div class="formGroup">
                <div class="editor-label">
                    @Html.Label("Last Name")
                </div>
                <div class="editor-field">
                    @Html.TextBoxFor(model => model.PersonAliasModel[i].LastNameAlias)
                </div>
            </div>
        }

    </div>

这是jquery:

    // SHow full form once the waiver checkboix is checked.
    $(document).ready(function () {
        $("input[name=aliasName]").click(function () {
            if ($("input[name=aliasName]").val() == "Yes") {
                $("#AliasSectionBottom").slideDown(800);
            } else {
                $("#AliasSectionBottom").slideUp("fast");
            }
        });
    });

1 个答案:

答案 0 :(得分:1)

问题在于:

if ($("input[name=aliasName]").val() == "Yes")

集合$("input[name='aliasName']")中有2个元素。 jQuery只能返回一个值,因此它始终是集合中的第一个值,因此if始终为真。

您可以使用:checked选择器过滤选择器:

if ($("input[name='aliasName']:checked").val() == "Yes")