【发布时间】:2017-07-08 09:28:02
【问题描述】:
我正在使用自定义验证器来检查出生日期,到目前为止它几乎什么都没有,但我正在尝试根据错误添加动态消息,它对我不起作用它显示容器空白消息,有什么想法吗?
这是自定义验证器的一段代码:
window.Parsley.addValidator('age', {
validate: function(value, id){
switch(id){
case 'main':
var day = $('#birthdate_day').val();
var month = $('#birthdate_month').val();
var year = $('#birthdate_year').val();
if(!day || !month || !year){
window.Parsley.addMessage('en', 'age','Error1 ');
return false;
} else {
window.Parsley.addMessage('en', 'age','Error 2');
}
break;
}
return true;
},
messages: {
en: 'Default error',
}
});
我尝试过的另一件事是在执行验证期间设置 data-parsley-age-message="error" ,但它仅在第二次运行验证时显示错误。
提前致谢。
编辑1:
window.Parsley.addValidator('age', {
validate: function(value, id){
$('.birthdate_container').find('ul').remove();
switch(id){
case 'main':
var day = $('#birthdate_day').val();
var month = $('#birthdate_month').val();
var year = $('#birthdate_year').val();
if(!day || !month || !year){
return $.Deferred().reject("One of them is blank");
} else if(day > 2 || month > 2 || year < 2016){
return $.Deferred().reject("Else test of another message");
} else {
return true;
}
break;
}
return true;
},
});
一个更清洁的解决方案(别介意,它只是为了测试)但仍然不能让它工作,因为我不知道如何在返回 true 时更新 3 个元素的类。
编辑 2:
只是使用 jQuery 来处理类的工作,但是,因为我需要删除 ul(否则消息会堆叠,我不希望这样),每当在另一个错误之后触发错误时,它只是删除它。
window.Parsley.addValidator('age', {
validate: function(value, id){
$('.birthdate_container').find('ul').remove();
switch(id){
case 'main':
var day = $('#birthdate_day').val();
var month = $('#birthdate_month').val();
var year = $('#birthdate_year').val();
if(!day || !month || !year){
$('.birthdate_container').find('.parsley-success').removeClass('parsley-success').addClass('parsley-error');
return $.Deferred().reject("Un campo es blanco");
} else if(day > 2 || month > 2 || year < 2016){
$('.birthdate_container').find('.parsley-success').removeClass('parsley-success').addClass('parsley-error');
return $.Deferred().reject("dia > 2 o mes > 2 o años < 2016");
} else {
$('.birthdate_container').find('.parsley-error').removeClass('parsley-error').addClass('parsley-success');
return true;
}
break;
}
return true;
},
});
【问题讨论】:
标签: javascript parsley.js