gpt4 book ai didi

javascript - 自定义 validationSummary HTML 帮助程序在客户端不起作用

转载 作者:行者123 更新时间:2023-11-30 05:59:06 24 4
gpt4 key购买 nike

我正在开发一个 mvc3 应用程序,我需要修改 ValidatioSummary 消息的样式,为此,我创建了自己的 HTM 助手,如下所示:

public static MvcHtmlString MyValidationSummary(this HtmlHelper helper){

string retainHtml +="";
int counterror = 0;
if (helper.ViewData.ModelState..IsValid)
{
TagBuilder tag = new TagBuilder("div");
tag.Attributes.Add("class", "validation-summary-valid");
tag.Attributes.Add("data-valmsg-summary", "true");
tag.InnerHtml += "<span> There was" + countererror + "errors found<ul><li></li></ul>"
retainHtml += tag.ToString();

return MvcHtmlString.Create(retainHtml);
}

if (!helper.ViewData.ModelState.IsValid)
{
TagBuilder tag = new TagBuilder("div");
tag.Attributes.Add("class", "validation-summary-errors");
tag.Attributes.Add("data-valmsg-summary", "true");
retainHtml +="<div class='validation-summary-errors'><span>";
counterror = 1;
string temretainhtml ="";

foreach (var key in helper.ViewData.ModelState.keys)
}
foreach (var err in helper.ViewData.ModelState[key].Errors)
temretainhtml += "<li>Error " + countererror++ + " : " + err.ErrorMessage + "</li>";
}

retainHtml += "Error ! there was " + --countererror + " errors found";
retainHtml += "</span>";
retainHtml += "<ul>";
retainHtml += temretainhtml;
retainHtml += "</ul></div>";
}
return MvcHtmlString.Create(retainHtml);
}
}
}

这非常适合服务器端验证,但我也需要在客户端验证上实现这种样式,现在,表单在客户端页面顶部显示 validationSummary,但使用默认的 MVC 格式,不是我在我的 HTML 帮助器中指定的那个,我一直在做很多研究,但不幸的是我没有任何运气,我可能需要在 jquery.validate.unobtrusive.js 文件中做任何更改以应用这些变化?还是我需要在 jquery 中创建另一个验证文件?我在 jquery 方面的经验很差,我现在很迷茫,如果你能给我任何帮助,我将不胜感激。

非常感谢!!!

最佳答案

迟到的答案:jquery.validate.unobtrusive.js 很难 Hook 。不要修改文件(从来都不是理想的)试试这个:

监听下面的事件

form.bind("invalid-form.validate", handler...

然后构建自己的摘要:

form.bind("invalid-form.validate", function (evt, validator) {
var container = $(this).find("[data-valmsg-summary=true]");
var list = container.find("ul");

if (list && list.length && validator.errorList.length) {
list.empty();
container.addClass("validation-summary-errors").removeClass("validation-summary-valid");

$.each(validator.errorList, function () {
$("<li style='color:#00aa00'/>").html(this.message).appendTo(list);
});
}
});

关于javascript - 自定义 validationSummary HTML 帮助程序在客户端不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893883/

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