ページ上で行ったドロップダウンの選択に応じて表示および非表示になるフィールドがページにいくつかあります。
だから、例えば、私は持っています
<section>
@Html.LabelFor(model => model.AuctionTypeId)
<div> @Html.DropDownList("AuctionTypeId", Model.AuctionTypes, @AuctionControllerResource.SelectAuctionType, new { id="auctionType", required = "required" })
@Html.ValidationMessageFor(model => model.AuctionTypeId) </div>
</section>
<section>
@Html.LabelFor(model => model.AutomaticExtensionType, new { hidden = "true", id = "automaticExtensionTypeLabel" })
<div> @Html.DropDownList("AutomaticExtensionType", Model.AutomaticExtensions, @AuctionControllerResource.SelectAutomaticExtensionType, new { hidden="hidden", required = "required", id = "automaticExtensionTypeList" })
@Html.ValidationMessageFor(model => model.AutomaticExtensionType) </div>
</section>
このために私が持っているJQueryコードは
$('#auctionType').change(function () {
var selectedAuctionType = $("#auctionType").val();
var englishAuctionType = $("#englishAuctionTypeId").val();
if (selectedAuctionType == englishAuctionType) {
$("#automaticExtensionTypeList").show();
$("#automaticExtensionTypeLabel").show();
} else {
$("#automaticExtensionTypeList").hide();
$("#automaticExtensionTypeLabel").hide();
}
});
これで、表示と非表示が正常に機能します。問題は、フォームを送信してフィールドを非表示にすると、必須フィールドであるautomaticExtensionTypeList
ためフォームが送信されないことです。automaticExtensionTypeList
問題は、MVCに表示フィールドのみを検証するように指示するにはどうすればよいですか?
このプロジェクトで作成したJQueryのいくつかを調べたところ、次の行があります。
$.validator.setDefaults({ ignore: [] });
明らかに、これにより非表示の検証が可能になります。私の質問は、反対のコード行は何ですか?