如何在jQuery提交事件中校验ASP.NET MVC表单是否有效?
解决ASP.NET MVC客户端校验与jQuery提交事件的兼容问题
首先,ASP.NET MVC基于数据特性的客户端校验,底层依赖jQuery Validate和jQuery Unobtrusive Validate两个脚本库——既然你已经在使用数据特性校验,页面应该已经引入了这两个库,不过可以确认下引用是否完整。
接下来,直接在你的jQuery提交处理程序里,通过表单的valid()方法就能判断是否通过校验,具体修改如下:
$form.submit(function (event) { // 检查表单是否通过客户端校验 if (!$form.valid()) { // 校验不通过,阻止表单默认提交行为 event.preventDefault(); // 可选:强制触发错误提示显示(避免部分场景下提示不自动弹出) $form.validate().showErrors(); return; } // 校验通过后,执行你的原有业务逻辑 ... });
另外,注意你ViewModel代码里的小错误:枚举名是DataType而非DateType,修正后的ViewModel代码如下:
public class SomeViewModel { [DataType(DataType.EmailAddress, ErrorMessage = "请输入有效的邮箱地址")] public string Email { get; set; } }
如果遇到表单校验未自动初始化的极端情况,可以手动在页面加载时初始化校验:
$(function() { $form.validate(); });
内容的提问来源于stack exchange,提问作者user149691
相关产品推荐
相关产品推荐

