我正在尝试根据下拉列表的值将 div 的值设置为隐藏或不隐藏,并且当表单重新显示验证错误时,我无法让它在发布后工作。我正在使用 ASP.NET MVC>
我有一个名为 ddlBookType 的下拉列表,它可以是空白的,或者具有值“A”或“B”
@Html.DropDownListFor(
x => x.Book.Type,
Model.Types, "", new { @style = "width:50%", @id = "ddlBookType" })<br />
@Html.ValidationMessageFor(model => model.ICLA.Type)
我有一个名为 BookDetails 的 div,如果上面的下拉列表设置为 B,我只想显示它:
<div id="BookDetails">
// Only show if ddlBookType is "B"
</div>
我有一个小函数可以根据 ddlBookType 的值切换上述 DIV 的可见性:
$("#ddlBookType").change(function () {
$('#BookDetails').toggle(this.value == 'B');
});
这很好用,但如果我的表单已发布,那么我需要根据 ddlBookType 的值显示/隐藏 BookDetails div。我试过了:
$(document).ready(function () {
if ($("#ddlBookType").value == 'B') {
$('#BookDetails').show()
}
else {
$('#BookDetails').hide()
}
})
但这似乎总是评估为假。因此,当我的用户第一次进入表单时,div 被隐藏(很好),但是当表单被发布并重新显示验证错误时,div 也被隐藏,无论 ddlBookType 的值如何。