2016-06-28 29 views
0

我已经在asp.net mvc的注意到了jquery.validate奇怪的行为jquery.validate奇怪的行为

我的模型字段包含字段StringLength属性:

[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

+0

这是默认的行为 - 请参考[文件](HTTPS ://jqueryvalidation.org/documentation/),特别是标题为_A的部分,当玩弄demo_ –

+0

谢谢!这个页面可以很方便 – Carlos28

回答

1

这是JQuery验证的默认行为。

如果你想只在表格上,以验证提交,设置“的onkeyup”,“的onclick”和“onfocusout在”为“假”:

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