当前位置: 首页 > 知识库问答 >
问题:

Jquery datepicker根据第一个日期字段中选定的日期限制第二个日期字段中的日期,反之亦然

仲霍英
2023-03-14

Jquery datepicker根据第一个日期字段中选定的日期限制第二个日期字段中的日期,反之亦然(根据第二个日期字段中选定的日期限制第一个日期字段中的日期)

我有2个文本框FromDate和Todate它取决于用户将首先选择哪个字段,他有2个选项FromDate和Todate。

如果用户1选择fromdate ex(2017年6月15日),则在“Todate”字段中,将阻止在“fromdate”中选择的所有以前的日期,并且“Todate”字段仅可用于选择未来的日期

如果用户1选择了Todate ex(2017年6月15日),则在Fromdate字段中,所有未来的日期都将被阻止,并且Fromdate字段仅可用于选择过去的日期

另一个例子是,如果fromdate被选择为(2017年6月15日),则todate将无法选择2017年6月15日之前的日期,todate将只能选择2017年6月15日之前的日期。

如果Todate被选择为(2017年6月15日),则fromdate将无法选择大于2017年6月15日的日期,fromdate将只能用于选择小于2017年6月15日的日期。

下面是我的代码

    <div class="input-group date" id="datetimepicker1">
                                        @Html.TextBoxFor(model => model.FromDate, "{0:d}", new { tabindex = "2", @class = "form-control" })
                                        <span class="input-group-addon" style="cursor: pointer;">
                                            <span class="fa fa-calendar"></span>
                                        </span>

                                    </div>
<div class="input-group date" id="datetimepicker2">
                                        @Html.TextBoxFor(model => model.ToDate, "{0:d}", new { tabindex = "3", @class = "form-control" })
                                        <span class="input-group-addon" style="cursor: pointer;">
                                            <span class="fa fa-calendar"></span>
                                        </span>

                                    </div>
<script>
  $(document).ready(function () {
    var date_input = $('#datetimepicker1'); //our date input has the name "date"
    var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
    var options = {
        format: 'mm/dd/yyyy',
        container: container,
        todayHighlight: true,
        autoclose: true,
    };
    date_input.datepicker(options);
})

$(document).ready(function () {
    var date_input = $('#datetimepicker2'); //our date input has the name "date"
    var container = $('.bootstrap-iso form').length > 0 ? $('.bootstrap-iso form').parent() : "body";
    var options = {
        format: 'mm/dd/yyyy',
        container: container,
        todayHighlight: true,
        autoclose: true,
    };
    date_input.datepicker(options);
})
</script>

共有2个答案

韦衡
2023-03-14

我在我的datepicker jquery中找到了解决问题的方法,下面是我使用的代码,它工作得很好

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css" type="text/css" media="all">
<script>

$(document).ready(function () {
$('#from').datepicker(
     {

         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');
             }
         });
})

null

<div> 

    <label for="from">From</label> <input type="text" id="from" name="from" class="form-control datepicker" /> <label for="to">to</label> <input type="text" id="to" class="form-control datepicker" name="to" />
</div>
郑衡
2023-03-14

下面的代码适用于您:

$("#FromDate").datepicker({
        changeMonth: true,
        changeYear: true,
         yearRange: '-30:+1',
        onSelect: function (dateText) {
            //self.validateDate();            
        },
        onClose: function (selectedDate, instance) {
            if (selectedDate !== '') {               
                var orginalDate = new Date(selectedDate);
                var date = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() + 3));
                $("#ToDate").datepicker("option", "minDate", selectedDate);
                $("#ToDate").datepicker("option", "maxDate", date);


            }
        }
    });
    $("#ToDate").datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '-30:+1',       

        onSelect: function (dateText) {
            //self.validateDate();
        },
        onClose: function (selectedDate) {
            var orginalDate = new Date(selectedDate);
            var date = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() -3 ));
            $("#FromDate").datepicker("option", "minDate", date);
            $("#FromDate").datepicker("option", "maxDate", selectedDate);
        }        
    });
 类似资料:
  • 问题内容: 我正在使用Jquery日期选择器,并且我有以下代码,其中当用户选择日期时,下面的字段填充为日期+1 我想限制字段中的日期,该日期不应低于字段中的日期。例如,如果在中选择的日期为,则允许用户选择,日期不得少于, 如何限制日期字段2中的日期选择? 问题答案: 我为您创建了一个jsfiddle。我不是100%肯定,如果它是“万无一失”,但以防止用户手动输入一个日期,你可以设置输入如 目前,我

  • 我使用Jquery日期选择器,我有以下代码,当用户选择日期时,下面的字段填充日期1 我想限制dt2字段中的日期,该字段不应低于dt1字段中的日期。E、 g.如果在dt1中选择的日期为2013年5月1日,则允许用户在2013年5月1日之后选择日期,但不得小于2013年5月2日 如何在日期字段2中限制日期领料?

  • 我有一个java实体类TimeEntry.java它的属性之一是Date,它看起来像这样。 对于该字段,在swagger UI模型模式上,字段日期显示为“日期”:“2016-01-08T22:34:22.337Z”,但我需要该字段作为“日期”:“2016-01-08”。 我尝试了以下方法: 请帮帮忙。

  • 为了实现这一点,我使用碳通过模型突变体转换日期。这意味着,首先我有日期: 我的变种人有以下几种: 现在,除了一个领域:“policy_cancellation”,一切都很好 当从表单向数据库插入数据时,如果policy_cancellation为空,则提交成功,但如果有数据,则PDO返回错误,例如: 触发以下命令: 另一个奇怪的情况(至少对我来说)是,在policy_cancellation突变体

  • 问题内容: 给定一个特定的日期(例如2011-07-02),我如何找到该日期之后的下一个星期一(或该日的任何工作日)的日期? 问题答案:

  • 我试图在两天之间创建一个天数列表。 我创建了如下解决方案: 但它只在90%的情况下有效(如果有月变化,它就不起作用) 例如,当我选择日期时: 从8月29日到9月30日,从8月31日,它给我打印了几天 有没有办法解决我的问题,或者有更好的办法? 编辑: 我的问题和建议的问题不同,因为在我的问题中,我有两个日期作为输入 例如 在建议的重复结果,这可能是int号 我的问题是如何循环两个日期之间的所有日期