【问题标题】:jquery.validate strange behavior [duplicate]jquery.validate 奇怪的行为
【发布时间】:2016-06-28 14:07:02
【问题描述】:

我注意到 jquery.validate 在 asp.net mvc 上有奇怪的行为

我的模型字段包含带有StringLengthattribute 的字段:

[StringLength(200, ErrorMessage = "Cannot be longer than 200 characters.")]
public string Name{ get; set; }

并查看:

@Html.LabelFor(model => model.Name, htmlAttributes: new { })
<div class="form-group formgroup-custom">
    @Html.TextAreaFor(model => model.Name, 2, 1, new { @class = "form-control"  })
</div>
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger error-custom" })

所以现在如果我点击我的TextArea 并输入 201 个字符,则不会发生错误,然后会出现失去焦点(比如说点击其他字段)错误消息。然后我回到我的TextArea删除200个字符下的内容,错误消息隐藏,不同的是输入201个字符后错误自动显示,无需失去焦点。 看起来第一次验证检查是针对某个loosing focus 事件,然后第二次检查keye up

所以我的问题是jquery.validate* 是否有一些错误,或者是否有其他脚本可能以某种方式破坏了它。

框架: .NET 4.6

【问题讨论】:

  • 这是默认行为 - 请参阅 documentation,特别是标题为玩演示时需要注意的一些事项的部分
  • 谢谢!这个页面很方便

标签: jquery .net asp.net-mvc


【解决方案1】:

这是 jquery validate 的默认行为。

如果您只想在表单提交上进行验证,请将“onkeyup”、“onclick”和“onfocusout”设置为“false”:

$("#form").validate({
   onfocusout: false,
   onkeyup: false,
   onclick: false
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2015-07-20
    • 2010-10-03
    • 2021-07-12
    • 2013-10-04
    相关资源
    最近更新 更多