0

如何更改日期选择器“#to”dd.mm.yy 上的日期。现在写 mm/dd/yy。如果我改变 / 与 . 正确计算和 id 我更改(d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();(d.getDate() + '/' + d.getMonth() + 1) + '/' + d.getFullYear();不工作。

这是代码:

$(function () {
    $('#to').attr('disabled', true);
    $("#from").datepicker({
        dateFormat: 'dd.mm.yy',
        onSelect: function (selectedDate) {
            var x = selectedDate.split('.');
            var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
            var res = d.setDate(d.getDate() + 7);
            var dateMsg = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
            $("#to").removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                minDate: dateMsg
            });
        }
    });
});

和html:

<label for="from">From</label>
<input type="text" id="from" name="from" />
<br/>
<label for="to">to</label>
<input type="text" id="to" name="to" />

这是所有代码:http: //jsfiddle.net/JBrvn/4/

4

3 回答 3

1

您必须将 minDate 属性转换为 Date 对象而不是字符串。您通过设置日期获得的字符串将是毫秒值,并且不能由日期选择器呈现。所以只需投射价值,它应该可以正常工作

$('#to').attr('disabled', 'disabled');
$("#from").datepicker({
    dateFormat: 'dd.mm.yy',
    minDate: new Date(),
    onSelect: function (selectedDate) {            
        var x = selectedDate.split('.');
        var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
        var res = d.setDate(d.getDate() + 7);
        $("#to").removeAttr('disabled').datepicker({
         dateFormat: 'dd.mm.yy',
         minDate: new Date(res)                
    });
  }
});
于 2013-08-30T06:06:07.647 回答
1

为什么不只是在小部件初始化时设置日期格式 - 我也重新设计了一些解决方案

$(function () {
    var dateFormat = 'dd.mm.yy';

    $("#from").datepicker({
        dateFormat: dateFormat,
        onSelect: function (selectedDate) {
            var date = $.datepicker.parseDate(dateFormat, selectedDate)
            var tod = date.setDate(date.getDate() + 7);
            $to.prop('disabled', false).datepicker( "option", "minDate", new Date(tod ));
        }
    });
    var $to = $("#to").datepicker({
        dateFormat: dateFormat
    }).prop('disabled', true);
});

演示:小提琴

于 2013-08-30T05:46:16.240 回答
1

演示

$(function () {
    $('#to').attr('disabled', true);
    $("#from").datepicker({
        dateFormat: 'dd.mm.yy',
        onSelect: function (selectedDate) {
            var x = selectedDate.split('.');
            var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
            var res = d.setDate(d.getDate() + 7);
            var dateMsg = d.getDate() + '.' + (d.getMonth() + 1) + '.' + d.getFullYear();
            $("#to").removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                minDate: dateMsg,
                dateFormat: 'dd.mm.yy'
            });
        }
    });
});
于 2013-08-30T05:56:11.017 回答