我有两份日期范围表。每个表单有两个字段,afromto。在javascript中,我创建了日期范围datepicker的两个实例,但是由于某种原因,在第二个日期范围表单中,它不能很好地工作。
第一种形式工作得很好。但当我在第二个表单的from框中选择一个日期时,例如10月9日,它会在from框中显示该日期。当我点击第二个表单中的to字段时,出于某种原因,我可以选择的最远日期是10月9日?
我下面有一把JS小提琴,你可以看看发生了什么事。我到处找了找,但找不到两个日期范围表单的任何工作示例。我可以找到很多默认的日期选择器,但它们当然不是日期范围,写的也不一样,通常的问题是人们使用相同的ID,但是我的ID都不一样,所以我不明白。。
JS小提琴-http://jsfiddle.net/6jJ36/

最佳答案

工作演示http://jsfiddle.net/fxr5c/
罪魁祸首是:var option = this.id == "invfrom" ? "minDate" : "maxDate",旧代码中的代码行您的id错误,即ivnfrom与行为相反。
休息这会有助于你的事业:)
代码

var dates = $("#from, #to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    dateFormat: 'dd/mm/yy',
    onSelect: function (selectedDate) {

        var option = this.id == "from" ? "minDate" : "maxDate",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(
            instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
            selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);
    }
});
var invdates = $("#invfrom, #invto").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    dateFormat: 'dd/mm/yy',
    onSelect: function (selectedDate) {

        var option = this.id == "invfrom" ? "minDate" : "maxDate",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(
            instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
            selectedDate, instance.settings);
        invdates.not(this).datepicker("option", option, date);
    }
});

关于javascript - 使用jQuery创建两个datepicker日期范围实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19268168/

10-12 00:02
查看更多