【发布时间】:2018-09-10 16:35:17
【问题描述】:
这和这个问题有关:Validation for selecting a minimum and maximum
所以我有两个字段,一个用于最小值,一个用于用户必须输入的最大值。我需要在这两个字段上验证它们是正确的 minim
我有以下代码
$.validator.addMethod('lessthan', function (value, element, params) {
var greatElement, validator, less, greatText, isEqualValid, great;
greatElement = $(params[0]);
// This code does not work
//validator = $( greatElement[0].form ).validate();
//validator.element(greatElement);
// This code does not work
greatElement.valid();
// validate the current value
// missing for brevety
});
$.validator.unobtrusive.adapters.add('lessthan', ['compareto', 'isequalvalid'], function (options) {
var element = $(options.form).find('input[name=' + options.params['compareto'] + ']')[0];
options.rules['lessthan'] = [element, options.params['isequalvalid']];
options.messages['lessthan'] = options.message;
});
但是,当我尝试验证当前字段的另一个字段时,即使 aria-invalid 不正确,输入验证错误类也不会被删除。
如何触发验证函数中其他字段的验证?
更新 我应该提到,我需要解决的情况是当我更改其中一个字段(keyup 或 lostfocus)时执行验证。
示例:我有最少 2 个和最多 5 个。 我将 min 更改为 23 两个字段都变得无效并具有与它们关联的错误类 我将 min 更改为 3 只有 max 字段才有效。 min 字段仍然无效,即使验证函数返回有效。
【问题讨论】:
-
请使用正确的标签。如果您还依赖 Unobtrusive Validation 插件作为 ASP 框架的一部分,这不仅仅是一个 jQuery Validate 问题。编辑标签。
-
为什么要删除 ASP 标签?您不想从最有可能帮助您的人那里获得帮助吗?
-
您还需要向我们展示自定义
ValidationAttribute的代码,以及您如何应用于模型属性 -
你为什么需要那个。我只需要客户端上的解决方案:所以只在 jquery 上。服务器端并不重要。
-
ASP 框架构造数据属性,供客户端验证使用。 Unobtrusive Validation 插件是 ASP 框架独有的。当使用带有 Unobtrusive Validation 的 ASP 框架时,jQuery Validate 只能通过 Unobtrusive Validation 插件进行初始化。最重要的是,您的问题可能是少数(如果不是唯一的话)关于 SO 的问题之一,该问题标记为不显眼的验证,而不是指示其操作的框架。如果您需要好的帮助,请正确标记问题,以便最了解这些事情的人可以实际看到它。
标签: jquery jquery-validate unobtrusive-validation