jquery 如何用JavaScript完成日期字段?

eimct9ow  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(89)

我想把两个日期的数据设置为开始和结束。应该是这样的:如果开始月份是01,结束月份必须是12,结束年份必须是开始年份。如果开始月份不是01,结束月份必须是开始月份-1,结束年份必须是开始年份+1。例如:开始日期:2012/01 ->结束日期:2012/12开始日期:2012/02->结束日期:2013/01
我试了这个代码:

<script defer>
    $(document).ready(function () {
        $("#datatable_years").DataTable();
        $("#start_month_year").on('change',function (){
            var year = $(this).val().trim()
            var month = $("#start_month_month").val().trim()
            if (year.length == 4){
                if (!isNaN(year)){
                    $("#end_month_year").val(function(){
                        if(month== 0o1){
                            $("#end_month_year").val(parseInt(year))
                        }else{
                            $("#end_month_year").val(parseInt(year)+1)
                        } 
                    })
                }
            }
        })
        $("#start_month_month").on('change',function (){
            var month = $(this).val().trim()
            if (month.length == 2){
                if (!isNaN(month)){
                    if(month== 01){
                        $("#end_month_month").val(12)
                        $("#end_month_year").val(parseInt(year))
                    }else{
                        $("#end_month_month").val(month)
                        $("#end_month_year").val(parseInt(year)+1)
                    }
                }
            }
        })
    });
</script>

字符串
但这一年并没有结束。

zc0qhyus

zc0qhyus1#

变量year未在start_month_month的第二个事件处理程序中定义。您应确保正确检索它。
您还需要处理年份应该相同的情况。目前,您只处理年份应该递增的情况。

$(document).ready(function () {
    $("#datatable_years").DataTable();

    $("#start_month_year").on('change', function () {
        var year = $(this).val().trim();
        var month = $("#start_month_month").val().trim();

        if (year.length == 4) {
            if (!isNaN(year)) {
                $("#end_month_year").val(function () {
                    if (month == '01') {
                        return year;
                    } else {
                        return parseInt(year) + 1;
                    }
                });
            }
        }
    });

    $("#start_month_month").on('change', function () {
        var month = $(this).val().trim();
        var year = $("#start_month_year").val().trim(); // Retrieve the year here

        if (month.length == 2) {
            if (!isNaN(month)) {
                if (month == '01') {
                    $("#end_month_month").val('12');
                    $("#end_month_year").val(year); // Set the same year
                } else {
                    $("#end_month_month").val(pad(parseInt(month) - 1, 2));
                    $("#end_month_year").val(parseInt(year) + 1);
                }
            }
        }
    });
});

function pad(num, size) {
    var s = num + "";
    while (s.length < size) s = "0" + s;
    return s;
}

字符串

相关问题