ドロップダウン リストの値に基づいて 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)
上記のドロップダウン リストが B に設定されている場合にのみ表示する BookDetails という div があります。
<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()
}
})
しかし、これは常に false と評価されるようです。したがって、ユーザーが初めてフォームにアクセスすると、div は非表示 (良好) ですが、フォームが投稿され、検証エラーで再表示されると、ddlBookType の値に関係なく、div も非表示になります。