gpt4 book ai didi

asp.net-mvc-3 - MVC 将方法添加到 jquery.validate.unobtrusive.js 中

转载 作者:行者123 更新时间:2023-12-02 07:48:49 24 4
gpt4 key购买 nike

我最近有一个关于 getting checkbox validation working 的问题在 MVC 项目中的客户端。这个问题已成功回答,但又提出了另一个疑问。

为了使我的复选框验证正常工作,我需要将以下 JavaScript 代码直接添加到 jquery.validate.unobtrusive.js 中:

$jQval.addMethod("mustbetrue", function (value, element, param) {
// check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});

adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});

这非常有效,但我对必须更改此文件感到不高兴,以防 Microsoft 或验证插件男孩将来更新该文件。如果我不再从事该项目,则该文件可能会被覆盖,而人们却没有意识到它已被定制。

考虑到这一点,我尝试将其添加到外部 JavaScript 文件中:

$.validator.addMethod("mustbetrue", function (value, element, param) {
// check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});

$.validator.unobtrusive.adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});

不幸的是,现在我的复选框上的客户端脚本无法运行。谁能看出我做错了什么吗?

提前致谢

最佳答案

嗅探器,

我越看这个,我就越摇头(对自己)。

经过进一步审查,只要您在他的页面脚本中添加一行,Darin 的方法就会起作用:

<script type="text/javascript">
$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");
$.validator.unobtrusive.parse();
</script>

每当您进行更改(例如添加新适配器)时,都必须重新解析不显眼的验证属性。自上次操作 jquery.validate.unobtrusive.js就是属性的解析,解析完之后添加adapter,重新解析解决这个问题。

辅导员

附注这解决了您的问题,但仍然没有解决如何添加其他不使用 jquery.validate.js 中的内置方法的自定义验证器的问题。不修改jquery.validate.unobtrusive.js .

P.P.S。我找到了添加自定义验证方法的答案。为了添加自定义验证方法而不修改 jquery.validate.unobtrusive.js ,您需要“借用”它的一些代码来添加到您的页面脚本中。添加自定义方法如下所示:

<script type="text/javascript">
var $jQval = $.validator,
adapters,
data_validation = "unobtrusiveValidation";

function setValidationValues(options, ruleName, value) {
options.rules[ruleName] = value;
if (options.message) {
options.messages[ruleName] = options.message;
}
}

$jQval.addMethod("mustbetrue", function (value, element, param) {
// check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});

$.validator.unobtrusive.adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});

$jQval.unobtrusive.parse();
</script>

关于asp.net-mvc-3 - MVC 将方法添加到 jquery.validate.unobtrusive.js 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942104/

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