javascript - jQuery datepicker- 具有 3 个字段的范围?

标签 javascript jquery datepicker

我正在创建一个 Web 表单,并且有以下 3 个使用日期选择器的输入字段:到达时间、开始日期和结束日期。 (用于贸易展览)

cargo 需要在“到达”日期之前到达,并且贸易展览从“开始日期”持续到“结束日期”。

我能够为“开始日期”和“结束日期”字段创建范围,但现在客户希望确保开始/结束范围不能早于“到达”日期,并且什么都不能当前日期之前。

我假设如果我将“到达”日期限制为无法选择早于当前日期的日期,然后将输入的“到达”日期强加为“开始日期”范围的开始,我将实现他们想要什么。 (在输入到达日期之前,我是否需要禁用开始/结束字段?)

不幸的是,这似乎需要大量高级代码,这有点超出了我的技能范围。希望有人能让我朝着正确的方向开始。

最佳答案

您有几个选择。您可以在提交时进行验证,以确保用户选择满足要求的适当日期,或者您可以使用日期选择器 restrict date range根据其他日期选择器的选定值来限制可用日期的选项。看看日期选择器select a date range功能以了解如何设置最小/最大可选日期。

这是一个示例 JSFiddle这证明了这一点。这尚未经过彻底测试,因此您可能必须尝试该行为才能完全按照您想要的方式进行操作(例如,您可能希望在更改 to 日期时也更改 arrive 最短日期)。

HTML:

<label for="arrive">Arrive</label>
<input type="text" id="arrive" name="arrive">
<br />
<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">

Javascript:

$("#arrive").datepicker({
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function (selectedDate) {
        $("#from").datepicker("option", "minDate", selectedDate);
    }
});
$("#from").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function (selectedDate) {
        $("#to").datepicker("option", "minDate", selectedDate);
        $("#arrive").datepicker("option", "maxDate", selectedDate);
    }
});
$("#to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function (selectedDate) {
        $("#from").datepicker("option", "maxDate", selectedDate);
    }
});

关于javascript - jQuery datepicker- 具有 3 个字段的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089015/

相关文章:

javascript - 在搜索数据表时数据表行减少到一个时显示按钮

javascript - 如何在 Express 中创建路线并接收响应 (`Cannot GET/api/example' )?

javascript - 如何在表单 block 中将字体设为粗体?

javascript - Eternicode Bootstrap 日期选择器 : how do you pass options when you are using show event?

javascript - 如何去除 Material UI 的 DatePicker 的边框?

javascript - 从 JavaScript 调用 Web 服务方法的最有效方法是什么?

jquery - 在 jQuery 中设置索引

javascript - 我试图让 jquery 在我的 chrome 扩展的 background.js 中工作,但它不起作用。为什么?

javascript - Jquery id 更改 .attr 将无法完全工作

datepicker - 如何在 sencha touch 2 的 datepickerfield 中设置从 'day' 和 'month'