我已经使用了几次,它通常效果很好。但是,在我最近的使用中,隐藏的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");
}
});
});
答案 0 :(得分:1)
问题在于:
if ($("input[name=aliasName]").val() == "Yes")
集合$("input[name='aliasName']")
中有2个元素。 jQuery只能返回一个值,因此它始终是集合中的第一个值,因此if
始终为真。
您可以使用:checked
选择器过滤选择器:
if ($("input[name='aliasName']:checked").val() == "Yes")