我正在使用自定义验证程序检查出生日期,到目前为止它几乎没有任何内容,但我试图根据错误添加动态消息并且它不工作对我来说,它显示一个空白的消息,任何想法的容器?Parsley.js自定义验证程序中的动态消息
下面是一段代码,自定义验证:
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',
}
});
我已经试过另一件事是验证的执行过程中设置数据香菜年龄消息=“错误”,但只有它第二次验证运行时显示错误。
在此先感谢。
EDIT1:
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;
},
});
一点清洁的解决方案(不介意其他人,它的存在只是为了测试),但仍然不能使它工作becasue我不知道我该怎么更新返回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;
},
});
你应该看看我自己接受的答案,这个交易在使用自定义验证器时,能够在同一个验证器上抛出几条消息。 – Kusanagi2k