具有最小和最大范围的多个jquery Datepickers

时间:2015-10-20 11:42:11

标签: jquery date datepicker

我正在尝试处理具有开始和结束日期范围的多个Datepickers。

HTML

<div id="date1">
     <input id="datePicker[0]_StartDate" data-index="0" class="datepickerStart" type="text" name="datePicker[0].StartDate"/>
     <input id="datePicker[0]_EndDate" data-index="0" class="datepickerEnd" type="text" name="datePicker[0].EndDate"/>
</div> 
<div id="date2">
     <input id="datePicker[1]_StartDate" data-index="1" class="datepickerStart" type="text" name="datePicker[1].StartDate"/>
     <input id="datePicker[1]_EndDate" data-index="1" class="datepickerEnd" type="text" name="datePicker[1].EndDate"/>
</div>

Jquery的

$(".datepickerStart").datepicker({
    constrainInput: true,
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    numberOfMonths: 1,
    onClose: function (selectedDate, obj) {
        var index = obj.input.data("index");
        $("#datePicker[" + index + "]_EndDate").datepicker("option", "minDate", selectedDate);
    }
});
$(".datepickerEnd").datepicker({
    constrainInput: true,
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    numberOfMonths: 1,
    onClose: function (selectedDate, obj) {
        var index = obj.input.data("index");
        $("#datePicker[" + index + "]_StartDate").datepicker("option", "maxDate", selectedDate);
    }
});

我想设置&#34;索引0&#34;使用&#34;索引0和#34;开始日期选择器最大范围结束日期选择器选择日期 并且 尝试设置索引0结束日期选择器最小范围,索引0开始日期选择器选择日期

和&#34;索引1&#34; datepickers。

请为此建议一些解决方案。谢谢

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码:

发现问题。另一个问题是你的元素的id。它们包含方括号。因此,为了处理这样的id,我们需要通过\\来逃避它们。

小提琴链接:http://jsfiddle.net/vijayP/pqhtt7gb/

JS代码:

$(".datepickerStart").datepicker({
    constrainInput: true,
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    numberOfMonths: 1,
    onClose: function (selectedDate, obj) {
        var index = obj.input.data("index");
        $("#datePicker\\[" + index + "\\]_EndDate").datepicker("option", "minDate", new Date(selectedDate));
    }
});
$(".datepickerEnd").datepicker({
    constrainInput: true,
    changeMonth: true,
    changeYear: true,
    firstDay: 1,
    numberOfMonths: 1,
    onClose: function (selectedDate, obj) {
        var index = obj.input.data("index");
        $("#datePicker\\[" + index + "\\]_StartDate").datepicker("option", "maxDate", selectedDate);
    }
});