在定义的最小日期和最大日期限制之外显示日期

4

我已经搜索并尝试找出答案,但是没有解决这个问题。在页面加载时,我正在使用以下最小值和最大值限制datePicker

$("#<%=txtboxDate.ClientID%>").datepicker({ 
minDate: new Date(2017, 2, 21),
 maxDate: new Date(2023, 07, 11) });

但是我也有2017-2-21之前的数据 <-(日期格式为yyyy-mm-dd)

例如,datePicker采用此格式mm/dd/yy。 因此它接收的日期是“2/1/2017”。 它超出了minDate限制。

如何在datePicker日历上显示这些日期或仅显示此日期2/1/2017,并具有与上述jquery相同的定义限制?


日期选择器用于设置新的日期值...如果不需要选择器,只需以任何你想要的格式呈现给定格式的值即可。或者你可以在标记中使用类似<input type="date" readonly />的方式。 - War
我不想将输入字段设置为只读。我想让日历只读。 当前的日历是这样的:可以选择日期,使用“下一个,上一个”箭头符号可以更改月份和年份。<- 我希望它可见,但所有这些选项都被禁用。 - ARr0w
1
请澄清您所说的“显示这些日期”的含义。它们应该出现在您的日历中,但不能被选择。您还可以利用beforeShowDay函数来迭代日期并添加类或执行其他类似的活动。 - Twisty
@Twisty 我的意思是在设置了minDate和maxDate限制后,当文本框中输入日期2/1/2017时,日历上不会显示这个日期。我希望日历也能显示它。--第二点-- 是的,它应该出现但不能被选择<-让我们暂时放下这一点。只需使日期在具有相同mindate、maxdate的日历上显示即可。 - ARr0w
3个回答

1
尝试这个。
<input id="dp" />

var d = $.datepicker.parseDate("mm/dd/yy", "12/21/2017");
$('#dp').datepicker({

    beforeShowDay: function (date) {
        return [date >= d, ''];
    }
});
$('#dp').datepicker("setDate", "12/10/2017");

0

在初始化日期选择器(fiddle)之前,请在输入字段中设置日期。这将解决您的问题,我想。

HTML:

Date Picker on input field: <input type="text" id="date1" name="date1"/> <br/>

JQuery:

$(document).ready(function() {

  $('#thedate').datepicker({
    dateFormat: 'mm/dd/yy',
    minDate: new Date(2017, 12, 21),
    maxDate: new Date(2017, 12, 28)
  });

});

0

你不能这样做。 最小值和最大值所施加的限制是为了控制可能日期范围。

要么更新值以符合最小日期,要么将最小值更改为你所需的日期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接