MVC表单验证无需提交表单

5

我有一个由MVC模型填充的标准表单,其中包含标准[Required]验证。我想通过AJAX“提交”此表单数据,而不是通过提交,并且我希望利用内置的MVC / razor验证功能。我无法弄清楚如何在不触发表单提交事件的情况下触发客户端验证。

这是我的razor标记:

@using (Html.BeginForm()) {
     <span class="label">Team Name:</span>&nbsp;@Html.TextBoxFor(m => m.Name})
     @Html.ValidationMessageFor(m => m.Name)

以下是我的模型:

public class Team
{
    [Required(ErrorMessage = "Required")]
    public string Name { get; set; }

这似乎是一件很容易的事情。在提交时它可以很好地工作。我只需要知道如何手动调用验证方法。


请查看此链接:http://docs.jquery.com/Plugins/Validation/Validator/showErrors#errors - gdoron
2个回答

5

此功能默认启用,但可能由于您未添加所需JavaScript库的链接而未能正常工作。

<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

如果您没有jquery.validate脚本,可能会出现服务器端验证的情况。$('form').submit()也应该触发客户端验证。 - user619656
哎呀,我早该知道,原来这么容易。我提交的所有表单都有这些库,那些通过Ajax提交的表单却没有……谢谢! - iGanja

2

作为顶级答案,当您在谷歌上搜索“mvc validation form submit”时,我需要补充另一点,这花费了我几个小时的时间。 当您使用

@Html.ValidationSummary()

在你的代码中,即使你添加了这些库并设置了相关选项,表单仍然会被提交。

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

在webconfig文件的appSettings属性中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接