gpt4 book ai didi

javascript - 如何检测数据注释验证是否不成功?

转载 作者:行者123 更新时间:2023-11-28 06:22:14 25 4
gpt4 key购买 nike

我有一个 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;
}

所以,问题是...如何检测客户端和发布之前的那些数据注释验证是否成功?

最佳答案

-- 删除错误答案--

我的第一个答案是错误的,我现在理解OP的场景是这样的:

  • 表单已发布到服务器
  • 服务器返回表单,因为ModelState.IsValid == false
  • 页面渲染时出现错误并提供给客户端
  • 如何检测客户端上现有的错误?

如果使用 @Html.ValidationSummary() 呈现错误,生成的标记将如下所示 [1] :

<span style="font-family: inherit;"><div class="validation-summary-errors" data-valmsg-summary="true">
<ul>
<li>List of error messages ...</li>
</ul>
</div>
</span>

因此data-valmsg-summary="true"告诉我们存在验证错误,即数据注释验证不成功。

 // using jQuery 1.7.2
var invalid = $('.validation-summary-errors').data('valmsg-summary');
if (invalid) {
// some javascript ...
}

关于javascript - 如何检测数据注释验证是否不成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35418258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com