简体   繁体   English

通过从另一个日期选择器中选择日期来禁用JQuery日期选择器日期

[英]Disable JQuery datepicker dates by picking a date from another datepicker

2 datepickers fromdate and todate 2个datepickers fromdatetodate

My requirement is to select a fromdate and the todate should not be more than 30 days from the selected fromdate , so when I pick a fromdate it should only enable next 30 days in todate datepicker. 我的要求是选择一个fromdate ,并且todate不应该超过选定的fromdate的 30天,所以当我选择一个fromdate时,它应该只在todate datepicker中启用接下来的30天。

i tried to implement this facility to these datepickers but not working 我试图将这个设施实施到这些日期选择器但不起作用

//from date
$("#txtTFromDateTeacherDailyReport").datepicker(
    {
        changeMonth : true,
        changeYear : true,
        dateFormat : "dd/mm/yy",
        maxDate : '0',
        beforeShow : function() {
            jQuery(this).datepicker(
                'option',
                'maxDate',jQuery('#txtTToDateTeacherDailyReport').val());
        },
    }).datepicker("setDate", "0");

    //to date                   
    $("#txtTToDateTeacherDailyReport").datepicker(
        {
            changeMonth : true,
            changeYear : true,
            dateFormat : "dd/mm/yy",
            maxDate :'0',
            beforeShow : function() {
            jQuery(this).datepicker(
                        'option',
                        'minDate',
                        jQuery( '#txtTFromDateTeacherDailyReport').val());
            },
        }).datepicker("setDate", "0");

Please help me to get rid of this. 请帮我摆脱这个。

jQuery Datepicker - Force range from selected date jQuery Datepicker - 从所选日期强制范围

http://codepen.io/anon/pen/vENJWd http://codepen.io/anon/pen/vENJWd

// From Datepicker
$( "#from" ).datepicker({
    defaultDate: "+1d",
    changeMonth: false,
    numberOfMonths: 1,
    minDate: "+1d",
    onClose: function(selectedDate) {
        $( "#to" ).datepicker( "option", "minDate", selectedDate );
        // Change value of second parameter for your needs
        // 7 = One Week, 14 = Two Weeks, etc
        $( "#to" ).datepicker( "option", "maxDate", new_date(selectedDate, 30) );
    }
});

// To Datepicker
$( "#to" ).datepicker({
    defaultDate: "+1w",
    changeMonth: false,
    numberOfMonths: 1
});

// Do not edit below this line
function new_date(old_date, days_after) {
    var month = parseInt(old_date.substring(0, 2))-1;
    var day = parseInt(old_date.substring(3, 5));
    var year = parseInt(old_date.substring(6, 10));
    var myDate = new Date(year, month, day);
    myDate.setDate(myDate.getDate() + days_after);
    var newMonth = myDate.getMonth()+1;
    var newDay = myDate.getDate();
    var newYear = myDate.getFullYear();
    var output = newMonth + "/" + newDay + "/" + newYear;  
    return output;
}

// Created By: Rafael Leonidas Cepeda

I think this will work for you... 我认为这对你有用......

$(function () {
    $("#datepicker1, #datepicker2").datepicker();
    $("#datepicker1").datepicker("option", "onSelect", function (dateText, inst) {
        var date1 = $.datepicker.parseDate(inst.settings.dateFormat || $.datepicker._defaults.dateFormat, dateText, inst.settings);

        var date2 = new Date(date1.getTime());
        date2.setDate(date2.getDate() + 30);
        $("#datepicker2").datepicker("setDate", date2);


    });
});

html HTML

<p>Date1: <input type="text" id="datepicker1" /></p>
<p>Date2: <input type="text" id="datepicker2" /></p>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM