【发布时间】:2016-02-15 20:15:53
【问题描述】:
我有一个 ASP.NET MVC 页面,其中包含这样的字段...
@Html.TextBoxFor(model => model.MyField, new { @class = "form-control", data_val_required = "Required field" })
另外,我有一个从表单的“onsubmit”事件调用的 JavaScript 验证函数...
@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @onsubmit = "return validateDeep();" }))
我需要检测数据注释验证是否成功。我调查并发现了“Page_IsValid”变量,不幸的是它总是未定义。
function validateDeep()
{
var errors = "";
if (!Page_IsValid) // this fails, also this: document.Page_IsValid
errors = errors + "- There are empty fields (marked in red color)<br/>";
errors = errors + getOtherValidationErrors();
if (errors != "") {
openAlert("ERRORS!<br/>" + errors);
return false;
}
return true;
}
那么,问题是......如何检测那些在客户端和 Post 之前的数据注释验证不成功?
【问题讨论】:
-
您想在服务器中了解它吗?
var isValid = ModelState.IsValid? -
所以你不能使用像
[Required]和validate them using jQuery这样的标准属性? -
这是在客户端级别 (JavaScript)。无法将验证更改为 [Required] 属性,因为项目中已有许多表单。
-
如果您没有
[Required]属性并且没有包含jquery.validate.js和jquery.validate.unobtrusive.js,您认为添加data_val_required = "Required field"会做什么?
标签: javascript asp.net-mvc validation