Hi Ryan,
For the first form, change the script to be like this (remove "numberOfMonths: 2" if you don't like two months displayed together):
$(document).ready(function(){
$('td[data-title="Total:"] input[type="text"]').attr('readonly', 'True');
$('td[data-title="Total"] input[type="text"]').attr('readonly', 'True');
var today = new Date();
var minDate = new Date(today.getFullYear(), today.getMonth()-1, +1);
var maxDate = new Date(today.getFullYear(), today.getMonth()+1, +0);
function isCorrectDate(n, target) {
var t = n.getDay();
return (t==target && n >= minDate && n <= maxDate);
}
function checkField(input, inst) {
if ($(input).closest('li').hasClass('endingFri')) {
$(input).datepicker("option", {
beforeShowDay: function(n) {
return [isCorrectDate(n, 5),""]
},
minDate: minDate,
maxDate: maxDate,
numberOfMonths: 2
});
}
if ($(input).closest('li').hasClass('endingSat')) {
$(input).datepicker("option", {
beforeShowDay: function(n) {
return [isCorrectDate(n, 6),""]
},
minDate: minDate,
maxDate: maxDate,
numberOfMonths: 2
});
}
}
$.datepicker.setDefaults( {beforeShow: checkField} );
window.Parsley.addValidator('ending', {
validateString: function(value, target) {
return isCorrectDate(new Date(value), parseInt(target));
},
messages: {
en: 'Not valid date.'
}
});
$('.endingFri input').attr('data-parsley-ending','5');
$('.endingSat input').attr('data-parsley-ending','6');
})
For the second form, use the following script (CSS class of the date field is specificDate):
$(document).ready(function(){
function isCorrectDate(n) {
var t = n.getDate();
return (t==1 || t==16);
}
function checkField(input, inst) {
if ($(input).closest('li').hasClass('specificDate')) {
$(input).datepicker("option", {
beforeShowDay: function(n) {
return [isCorrectDate(n),""]
},
});
}
}
$.datepicker.setDefaults( {beforeShow: checkField} );
window.Parsley.addValidator('specific', {
validateString: function(value) {
return isCorrectDate(new Date(value));
},
messages: {
en: 'Not valid date.'
}
});
$('.specificDate input').attr('data-parsley-ending','');
})