我正在尝试使用formvalidation.io中的formvalidator验证一些字段,但是遇到了一些使用它的问题。我需要找出文本框(日期,电话,电子邮件)是否有值(用户填写文本框)并验证该字段。但是,如果用户未填写文本框,请不要验证该字段。用户可以开始填写文本框,然后删除其内容,如果他们这样做,则不应该验证该字段。任何人都可以帮我解决这个问题吗?
我尝试了一些不同的技术,例如addEventListener等,但我还没有得到它我需要它的方式。
这是我目前拥有的一个例子。
$("#Q_dob_text").change(function () {
var dob = document.getElementById('Q_dob_text').value;
if (dob !== '') {
$('#registry').formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
dob: {
validators: {
date: {
format: 'MM/DD/YYYY',
message: 'The value is not a valid date'
}
}
}
}
});
}
});
我也试过这个变种......
document.getElementById('Q_date_text').addEventListener("keydown", dateFx);
function dateFx() {
var date = document.getElementById('Q_date_text');
if (date !== '') {
$('#registry').formValidation({
framework: 'bootstrap',
icon: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
date: {
validators: {
date: {
format: 'MM/DD/YYYY',
message: 'The value is not a valid date'
}
}
}
}
});
}
}
非常感谢任何帮助!
答案 0 :(得分:1)
出现问题的是.formValidation
调用初始化(绑定)插件以始终验证,因此只要您运行该代码一次,它就会始终保持正常工作(甚至虽然用户删除了输入的文本。)
您真正想要做的是初始化一次,并更新它的验证设置(在validators
设置中),使其不验证dob
(来自您的第一个示例)如果它是空的。您可以通过调用" updateOption"来实现此目的。或" removeField",请参阅documentation。