我正在使用自定義驗證程序檢查出生日期,到目前爲止它幾乎沒有任何內容,但我試圖根據錯誤添加動態消息並且它不工作對我來說,它顯示一個空白的消息,任何想法的容器?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