Har*_*M V 86 jquery jquery-ui datepicker uidatepicker jquery-ui-datepicker
我正在尝试使用UI日期选择器选择日期范围.
在from/to字段中,人们不应该能够查看或选择当天之前的日期.
这是我的代码:
$(function() {
var dates = $( "#from, #to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
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 );
}
});
});
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何禁用当前日期之前的日期.
Nic*_*tti 107
您必须创建一个新的日期对象,并将其设置为minDate
初始化日期选择器时
<label for="from">From</label> <input type="text" id="from" name="from"/> <label for="to">to</label> <input type="text" id="to" name="to"/>
var dateToday = new Date();
var dates = $("#from, #to").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
minDate: dateToday,
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);
}
});
Run Code Online (Sandbox Code Playgroud)
编辑 - 从您的评论现在它按预期工作http://jsfiddle.net/nicolapeluchetti/dAyzq/1/
小智 71
声明dateToday变量并使用Date()函数来设置它..然后使用该变量分配给minDate,这是datepicker的参数.
var dateToday = new Date();
$(function() {
$( "#datepicker" ).datepicker({
numberOfMonths: 3,
showButtonPanel: true,
minDate: dateToday
});
});
Run Code Online (Sandbox Code Playgroud)
就是这样......上面的回答真的很有帮助......继续说吧......
小智 45
$('#datepicker-dep').datepicker({
minDate: 0
});
Run Code Online (Sandbox Code Playgroud)
minDate:0
适合我.
小智 18
使用"minDate"选项限制最早的允许日期.值"0"表示今天(从今天起0天):
$(document).ready(function () {
$("#txtdate").datepicker({
minDate: 0,
// ...
});
});
Run Code Online (Sandbox Code Playgroud)
文档:http://api.jqueryui.com/datepicker/#option-minDate
只是为了补充:
如果您还需要阻止用户手动键入过去的日期,这是一种可能的解决方案.这就是我们最终做的事情(根据@Nicola Peluchetti的回答)
var dateToday = new Date();
$("#myDatePickerInput").change(function () {
var updatedDate = $(this).val();
var instance = $(this).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, updatedDate, instance.settings);
if (date < dateToday) {
$(this).datepicker("setDate", dateToday);
}
});
Run Code Online (Sandbox Code Playgroud)
如果用户手动键入过去的日期,这样做的目的是将值更改为今天的日期.
小智 5
现场演示,尝试一下,
$('#from').datepicker(
{
minDate: 0,
beforeShow: function() {
$(this).datepicker('option', 'maxDate', $('#to').val());
}
});
$('#to').datepicker(
{
defaultDate: "+1w",
beforeShow: function() {
$(this).datepicker('option', 'minDate', $('#from').val());
if ($('#from').val() === '') $(this).datepicker('option', 'minDate', 0);
}
});
Run Code Online (Sandbox Code Playgroud)
这是简单的方法
$('#datepicker').datepicker('setStartDate', new Date());
Run Code Online (Sandbox Code Playgroud)
我们也可以禁用未来的日子
$('#datepicker').datepicker('setEndDate', new Date());
Run Code Online (Sandbox Code Playgroud)
通过设置startDate: new Date()
$('.date-picker').datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
...
startDate: new Date(),
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
282860 次 |
最近记录: |