当用户选择有效选项时,需要清除 EnumDropDownListFor 的客户端验证

Need to clear client side validation of EnumDropDownListFor when user chooses valid option

如果用户在没有select在 ddl 中输入有效值的情况下单击页面上的提交按钮,它会验证错误;但是,当用户继续并 select 一个值时,错误不会像文本框那样清除。我有:

    public enum PoolDeckMaterialsEnum
    {
        Pavers,
        Concrete,
        [Display(Name = "N/A")]
        NotApplicable
    }

    [EnumDataType(typeof(PoolDeckMaterialsEnum))]
    [Required]
    public PoolDeckMaterialsEnum? PoolDeckMaterials { get; set; }

            @Html.LabelFor(model => model.PoolDeckMaterials, new { @class = "control-label" })
            @Html.EnumDropDownListFor(model => model.PoolDeckMaterials, "--- Select ---", new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.PoolDeckMaterials, "", new { @class = "text-danger" })

重现步骤:

  1. 打开页面

    • 更改枚举值
    • 错误信息永远消失
  2. 打开页面

    • 点击提交
    • 更改枚举
    • 验证消息有效

编辑: 默认情况下应该有一些错误。关于验证注册。

我最终执行了以下操作以立即清除选择时的验证错误:

//04/10/20 kk Had to do the below to clear the val immediately on selection
$("#PoolDeckMaterials").change(function () {
    $("#PoolDeckMaterials").blur(); 
});