javascript - 正在验证 MVC 隐藏字段

标签 javascript c# jquery asp.net asp.net-mvc

我的页面上有一些字段会根据您在页面上所做的下拉选择而出现和消失。

所以,例如,我有

<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: [] });

显然这会启用隐藏验证。我的问题是,哪一行代码做相反的事情?

最佳答案

试试这个:

$.validator.setDefaults({
    ignore: ':hidden, [readonly=readonly]'
});

或用于定制

$.validator.setDefaults({
    ignore: "#automaticExtensionTypeList" 
});

关于javascript - 正在验证 MVC 隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313420/

相关文章:

javascript - 如何防止最右边的元素在悬停时跳跃?

javascript - 使用javascript旋转pdf对象

javascript - 在 jQuery/JS 中使用正则表达式从价格格式的字符串中提取 float

javascript - 输出3位数后带逗号的数字

jquery - Rails 3 best_in_place 编辑在不刷新页面的情况下无法工作

javascript - 不同时区的时钟

c# - 是否可以使用 asp.net 通过 GSM 调制解调器连接和发送消息?

c# - 将 List<Guid> 转换为 List<Guid? >

c# - 根据内容过滤 OpenFileDialog 中显示的文件?

javascript - 从外部 html 的表中提取信息