【问题标题】:MVC Model validation on lose focus失去焦点的 MVC 模型验证
【发布时间】:2021-09-06 05:49:23
【问题描述】:

在使用 MVC 数据注释时是否可以更改何时客户端验证?目前,所有验证似乎都发生在keyup,但我需要它发生在onchangelosefocus

ViewModel:

[Display(Name = "First Name")]
[Required(ErrorMessage = "First Name is Required")]
public string FirstName { get; set; }

cshtml

@Html.TextBoxFor(m => m.FirstName, new { placeholder = Html.DisplayNameFor(n => n.FirstName) }) 
@Html.ValidationMessageFor(m => m.FirstName)

渲染的 HTML

<div class="field">
    <input data-val="true" 
           data-val-required="First Name is Required" 
           id="FirstName" 
           name="FirstName" 
           placeholder="First Name" 
           type="text" 
           value="">
    <span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
</div>

这可以正常工作,但是当我输入输入时,会在我输入时进行验证。在我单击或关闭输入后如何进行验证?

版本

  • .NET 4.6.1
  • Microsoft.Aspnet.Mvc 5.2.3
  • Microsoft.jQuery.Unobtrusive.Validation 3.2.3

【问题讨论】:

  • 您使用的是哪个版本?首先是 Microsoft 不显眼的验证 works on blur
  • 你的意思是.NET版本吗?它是 .NET 4.6.1。
  • 不,MVC 版本 - 那时必须是 5。尝试更新您的 nuget 包以进行 MVC 和不引人注目的验证。
  • @GSerg 我用版本更新了帖子。 Visual Studio 将这些版本报告为最新的稳定版本。
  • 在不同的浏览器中会发生这种情况吗?

标签: c# asp.net-mvc validation


【解决方案1】:

我能够使用 Javascript 来获得所需的行为。

$.validator.setDefaults({
    onkeyup: false
})

所有验证现在都发生在blur

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多