引导验证程序-仅部分验证
Bootstrap Validator - validating only partially
再次提出关于Bootstrap验证器的问题。我正在使用这个插件:验证器
我有一个很大的<form>
,有几个组,我们称之为"掩码"。每个掩码由几个"字段"组成。每个字段可以是正常的<input>
、<select>
等。这些字段中的每个字段都有特定的规则,如字段_1可以有required
和data-minLength="5"
,字段_2可以有maxlength="30"
等。
想要的行为:如果其中一个组/掩码本身是有效的,请再次启用提交按钮,这样我就可以部分发送表单,不要等到表单的所有部分都填写完毕。问题:提交按钮被完全禁用,直到我完成COMPLETE表单中的所有验证器规则,这不是我想要的。如果整个表单中有一个或多个组本身有效,请激活提交按钮。
我尝试过的:
$("#inputForm").on("change", function () {
$("#inputForm").find("*[id^=mask_]").each(function() {
var valid = true;
$(this).find("input[id^=field_], select[id^=field_]").each(function() {
if(!$(this).val()) {
valid = false;
}
});
if(valid) {
$("#inputForm").find(":submit").prop("disabled", false);
$("#inputForm").prop("novalidate", false)
}
});
});
如何做到这一点?我的代码确实到达了if(valid)
子句,但不会重新激活提交按钮。。。另外:不要自动发送,如果一个组通过调用表单上的submit()
有效,只需激活按钮,用户就可以立即发送。
谢谢!
好吧,经过2个小时的搜索和尝试,我最终完成了以下操作:
-
加上选项disable,设置为false:
$(document).ready(function () { $("#inputForm").validator({ disable: false }); });
这将保证提交按钮始终是可点击的。然而:这仍然会导致调用验证器的onSubmit()
函数,并说"停止不,这还无效"。
-
在min.js中添加了以下内容,以确保JUST FOR THIS VERY FORM,忽略
onSubmit()
验证以使其能够发送,即使它还不是100%有效的。c.prototype.onSubmit=function(a){if(c.attr("id")!="inputForm"){this.validate(),(this.isIncomplete()||this.hasErrors())&&a.preventDefault()}}
这将使验证器忽略表单#inputForm上的onSubmit()
。
注意:不要正常使用它,因为这当然不是验证器的用途。这将js验证器简化为一个图形验证器,只需简单地说"嘿,这里有问题,但好吧,如果你无论如何都想发送它,那就去做吧"。如果这样做,您必须像我们一样在服务器端捕获这些东西。
- Regex用于年龄验证,仅使用Javascript接受0-200岁之间的年龄
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 仅验证/接受来自特定域名的电子邮件
- JavaScript-仅验证数值并且在范围内
- 输入验证仅在lur上
- JQuery验证仅适用于提交的表单中的第一个元素.[打算验证所有内容]
- 在输入时,JavaScript 验证仅在最后一个中起作用
- PHP 验证仅验证表单中的第一个文本框
- JavaScript 验证仅允许带有退格键、箭头和删除键的字符和逗号
- 如果我使用 jQuery 的 .hide() 和 .show() 方法,如何将 javascript 验证仅应用于 HT
- 如何使谷歌身份验证仅在流星中可用选项
- Javascript验证(仅限字母和数字)
- jquery REGEX验证仅用于字母和数字u
- 主干:验证仅在set()参数上运行
- Javascript验证仅对字母值无效
- 验证——仅当复选框和单选按钮被选中时
- jQuery验证-仅针对验证失败的字段的回调方法
- JQuery验证仅验证第一个输入
- 分号分隔的电子邮件验证仅在 JavaScript 中
- 验证仅在所有文本输入都为空时有效,而不是所有文本输入都为空