asked on September 9, 2022
Dear All
I am looking for a solution where the due date should be shown after number of days , means I have four categories of task each task is required 3 , 7, 15,21 days when requester select the task due date needs to hide previous dates and weekends based on task duration dates, also requester cannot choose weekends , can I have java script for the same , I got java script from this site which is working , but only for one type of calculation , when I do the JS for other due date fields the weekends are enabling . I am attaching the Javascript i have , in my understanding i need to create 3 more clasess and assign to each due date fields, Can any one help, Attaching the JS which I have .
(function () {
var moment;
moment = (typeof require !== "undefined" && require !== null) &&
!require.amd ? require("moment") : this.moment;
moment.fn.businessAdd = function (days) {
var signal = days<0?-1:1;
days = Math.abs(days);
var d = this.clone().add(Math.floor(days / 5) * 7 * signal, 'd');
var remaining = days % 5;
while(remaining){
d.add(signal, 'd');
if(d.day() !== 0 && d.day() !== 5)
remaining--;
}
return d;
};
}).call(this);
$(document).ready(function(){
//Exclude weekend in date picker
function isCorrectDate(n) {
var t = new Date(n).getDay();
return (t!=5 && t!=6);
}
function checkDate(n) {
return[isCorrectDate(n),""];
}
function checkField(input, inst) {
if ($(input).closest('li').hasClass('myDate7')) {
$(input).datepicker("option", {beforeShowDay: checkDate});
}
}
$.datepicker.setDefaults( {beforeShow: checkField} );
//Minimum 7 business days in advance
var date = moment().businessAdd(7);
$('.myDate7 input').attr('min', date.format('YYYY-MM-DD'));
//Validation for exclude weekend, for Forms 10.1
$.webshims.ready('form-validators', function () {
$.webshims.addCustomValidityRule('myDate7', function (elem, value) {
if (value && $(elem).closest('li').hasClass('myDate7')) {
return !isCorrectDate(value);
}
return false;
}, 'Not valid date.');
});
});
$(document).ready(function(){
//Exclude weekend in date picker
function isCorrectDate(n) {
var t = new Date(n).getDay();
return (t!=5 && t!=6);
}
function checkDate(n) {
return[isCorrectDate(n),""];
}
function checkField(input, inst) {
if ($(input).closest('li').hasClass('myDate')) {
$(input).datepicker("option", {beforeShowDay: checkDate});
}
}
$.datepicker.setDefaults( {beforeShow: checkField} );
//Minimum 3 business days in advance
var date = moment().businessAdd(3);
$('.myDate input').attr('min', date.format('YYYY-MM-DD'));
//Validation for exclude weekend, for Forms 10.1
$.webshims.ready('form-validators', function () {
$.webshims.addCustomValidityRule('myDate', function (elem, value) {
if (value && $(elem).closest('li').hasClass('myDate')) {
return !isCorrectDate(value);
}
return false;
}, 'Not valid date.');
});
});
0
0