在“require_from_group_exact”验证的输入之前使用任何输入进行 jQuery 验证都无法正确验证
jQuery validation with any inputs before an 'require_from_group_exact' validated input does not validate properly
我正在使用jQuery验证插件来验证html页面上的许多输入。 名字始终是必需的,可以是电子邮件或移动设备,但不能两者兼而有之。 为此,我使用 require_from_group_exact 方法。
当输入按此顺序排列时,验证将完美进行:
<form>
Email: <input class="commsinfo" name="email"><br>
Mobile: <input class="commsinfo" name="mobile"><br>
Name: <input name="firstname"><br>
<input type="submit">
</form>
但是,如果您交换输入,则无法正确验证最后一个输入(名字)(您必须键入名字,然后将其删除以触发验证) - 为什么??。 这是我正在尝试解决的所需顺序和问题 - 这是 jQuery 验证插件或我的代码的错误吗?
<form>
Name: <input name="firstname"><br>
Email: <input class="commsinfo" name="email"><br>
Mobile: <input class="commsinfo" name="mobile"><br>
<input type="submit">
</form>
我已经创建了未正确验证版本的 JSFiddle。 jQuery.validator.addMethod 和 $('form').validate 的代码可以在小提琴中看到。
您没有检查所有输入字段,
更改var fields = $(selector, element.form);
到var fields = $('form :input');
更新的小提琴
在您
提供的示例中,调用fields.valid()
似乎存在问题。
我已经更新了小提琴以删除一些我认为您不需要的代码。对valid()
的调用似乎是问题的症结所在,删除它会导致验证按预期工作。
更新后的代码现在如下所示:
jQuery.validator.addMethod("require_from_group_exact", function(value, element, options) {
var validator = this;
var selector = options[1];
var validOrNot = $(selector, element.form).filter(function() {
return validator.elementValue(this);
}).length == options[0];
return validOrNot;
}, jQuery.format("Please fill {0} of these fields."));
$('form').validate({
rules: {
firstname: { required: true },
email: { require_from_group_exact: [1, ".commsinfo"] },
mobile: { require_from_group_exact: [1, ".commsinfo"] },
}
});
更新的小提琴
每次调用
fields.valid();
您的验证器方法被召回,因此您会出现明显奇怪的行为。您可以自己检查此调试。
相关文章:
- Angular2 Javascript 验证 输入数字而不是字符
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 如何通过 JavaScript 验证输入字段中的值
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 如何javascript验证<输入类型=文件多个>如果浏览器不支持多个
- 用于验证输入的JavaScript正则表达式超过0个字符
- 验证输入字段和块字符
- Angularjs iu.mask带有日期的验证输入
- 验证输入,更新<td>属性以匹配验证状态
- 通过点击表单外的按钮,使用required和angularjs验证输入字段
- 基于自身输入变化的角度验证输入
- 使用 javascript 验证输入数组
- 年龄验证输入框 - 计算是否超过 18 岁
- JQuery 验证输入类型文件在服务器端失败
- 如何使用jquery或javascript验证输入框的内容
- JSF 和 RichFaces 用于实时验证输入框
- Javascript/Jquery:使用数字范围验证输入
- 如何在更改时验证输入字段并启用提交按钮
- 编码器点火器未验证输入文本
- 在复选框选择后验证输入类型文本