我一直在使用.NET的xVal框架,结合jQuery验证插件和jQuery表单插件来连接服务器端模型的某些验证规则以及客户端验证。
然而,我遇到了将它们全部连接起来的问题。
我想要实现以下目标:
允许客户端使用通过调用jQuery验证插件的
rules("add", options")
方法定义的基本验证(这就是xVal使用的获取在服务器端上定义在模型上的规则的方式)。如果客户端验证成功,则进行调用向服务器输入表单数据并再次执行验证(对于在客户端验证的项,以及任何无法在客户端执行的其他验证)。
使服务器返回一个JSON对象,指示可能具有特定字段的任何错误,然后设置这些字段的错误显示。
通过对xVal进行调用,我已经通过ASP.NET MVC页面为插件设置了元数据,如下所示:
<%= Html.ClientSideValidation<Model>("model") %>
这将在客户端转化为以下内容:
<script type="text/javascript">
xVal.AttachValidator("model",
{
"Fields":
[
{
"FieldName":"title",
"FieldRules":
[
{
"RuleName":"Required",
"RuleParameters":{}
},
{
"RuleName":"StringLength",
"RuleParameters":
{
"MaxLength":"250"
}
}
]
},
{
"FieldName":"body",
"FieldRules":
[
{
"RuleName":"Required",
"RuleParameters":{}
}
]
}
]
}, {})
</script>
上面的代码实际上只是一系列调用 rules("add", options)
的操作,然后由 jQuery 验证插件进行处理。
但是,当尝试通过 jQuery 表单提交时,验证不会对表单值进行验证。表单会被提交,但值根本没有经过验证。
如何在使用 jQuery Form 插件提交表单时,通过调用 ajax
进行 jQuery 验证插件的验证?