选择第一个日期后禁用过去日期为datepicker

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择第一个日期后禁用过去日期为datepicker相关的知识,希望对你有一定的参考价值。

我正在努力制作一个简单的预订表格,使用GET重定向到staah预订引擎(他们没有任何api或嵌入式小部件)。

预订引擎只接受“dd M yyyy”日期格式(例如2018年4月19日)

我有搜索SO但没有找到任何有效的解决方案,最近我发现工作小提琴,我编辑了我的需要小提琴(你会知道我想要在小提琴中实现什么)。你可以在这里看到它:https://jsfiddle.net/k5zookLt/1929/,但问题是他们对html代码有不同的方法,我试图修改我的HTML的js代码,但它不起作用。我没有任何javascript技能。我不知道为什么这个小提琴在我的HTML代码中不起作用

我的代码

<div class="col-md-2 col-sm-3">
<div class="input-group date" >
<input type="text" class="jaraksmall sm-form-control form-control from " id="from" name="from" required>
</div>

</div>
<div class="col-md-2 col-sm-3">
<div class="input-group date"> 
<input type="text" class="jaraksmall sm-form-control form-control to" id="to" name="to" required>
</div>

小提琴HTML代码:

<div class="line col-sm-4">
<div class="form-group">
<label>First check in:</label>
<input type="text" class="form-control form-control-1 input-sm"placeholder="CheckIn" >
</div>

<div class="form-group">
<label>First check out:</label>
<input type="text" class="form-control form-control-2 input-sm" placeholder="CheckOut">
</div>
</div><!--line-->    

如何在我的HTML代码中使小提琴的js代码运行良好?对不起,我的英语不好

答案

那是因为.each的选择器和找到输入元素的选择器没有找到所需的元素。你需要 :

1)删除每个语句。

2)修改datepicker输入元素选择器以使用已添加(来回)的类。

var startDate = new Date();
var fechaFin = new Date();
var FromEndDate = new Date(); 
var ToEndDate = new Date();

$(".from").datepicker({
autoclose: true,
startDate: "+0d",
format: 'd M yyyy'
}).on('changeDate', function(selected){
    startDate = new Date(selected.date.valueOf());
    startDate.setDate(startDate.getDate(new Date(selected.date.valueOf()))+1);
    $('.to').datepicker('setStartDate', startDate);
}); 

$('.to').datepicker({
autoclose: true,
format: 'd M yyyy'
}).on('changeDate', function(selected){
    FromEndDate = new Date(selected.date.valueOf());
    FromEndDate.setDate(FromEndDate.getDate(new Date(selected.date.valueOf())));
    $('.from').datepicker('setEndDate', FromEndDate);
});  

Working Demo

另一答案

您也可以替换html代码,如下所示

<div class="line" style="width:100%">
<div class="col-md-2 col-sm-3" style="display: inline-block">
<div class="input-group date" >
<input type="text" class="jaraksmall sm-form-control form-control-1 form-control from " id="from" name="from" required>
</div>
</div>

<div class="col-md-2 col-sm-3" style="display: inline-block">
<div class="input-group date"> 
<input type="text" class="jaraksmall sm-form-control form-control-2 form-control to" id="to" name="to" required>
</div>
</div>
</div>

jsfiddledemo

以上是关于选择第一个日期后禁用过去日期为datepicker的主要内容,如果未能解决你的问题,请参考以下文章

Datepicker 如何仅选择未来日期并禁用 JQuery 和 CSS 中的过去日期?

如何在 php datepicker 中禁用过去的日期 [重复]

Jquery Bootstrap Datepicker 禁用过去日期并且不自动填充输入框

禁用日期选择器过去的日期和时间

React & Ant-Design 应用 —— DatePicker 日期选择框 及 特定日期禁用 Moment.JS

React & Ant-Design 应用 —— DatePicker 日期选择框 及 特定日期禁用 Moment.JS