为 2 Datepicker 开始日期和结束日期设置验证 javascript

Posted

技术标签:

【中文标题】为 2 Datepicker 开始日期和结束日期设置验证 javascript【英文标题】:Set Validation for 2 Datepicker Start Date and End Date javascript 【发布时间】:2015-06-29 22:35:57 【问题描述】:

好的,我有这个问题。我有两个日期选择器,一个是开始日期,另一个是结束日期。

我想要执行 javascript 验证,其中结束日期不能早于开始日期,例如,如果用户单击开始日期并选择 2015 年 4 月 2 日,那么当用户单击结束日期时,它会自动使日期显示在日历不得早于开始日期。

我正在附上我的 plunkr 代码。 http://plnkr.co/edit/nsf6o2hlYrt3pFfJCFn2

javascript.js

$(document).ready(function()

$('#activity-customer-start-period').datepicker(
    format: 'dd M yyyy', 
    autoclose: true,
    minDate: 0,
    onSelect: function(selected) 
        console.log(selected)
      $("#activity-customer-end-period").datepicker("option","minDate", selected);
    
  );

  $('#activity-customer-end-period').datepicker(
    format: 'dd M yyyy', 
    autoclose: true,
    onSelect: function(selected) 
        console.log(selected)
      $("#activity-customer-start-period").datepicker("option","maxDate", selected);
    
  );

) 

index.html

<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h1>Hello Plunker!</h1>
    <h5>Start Time </h5>
    <input id="activity-customer-start-period" name="start_period" placeholder="" type="text">
    <br/>
    <h5>End Time</h5>
    <input  id="activity-customer-end-period" name="end_period" placeholder="" type="text">
  </body>

</html>

任何帮助表示赞赏。

【问题讨论】:

添加了一个小提琴文件也许你可以从这里帮我解决它? 【参考方案1】:

您需要在结束日期字段中添加以下选项。

minDate: $('#activity-customer-start-period').val(),

这样做:

*$('#activity-customer-end-period').datepicker(
    format: 'dd M yyyy', 
    autoclose: true,
    minDate: $('#activity-customer-start-period').val(),
    onSelect: function(selected) 
        console.log(selected)
      $("#activity-customer-start-period").datepicker("option","maxDate", selected);
    
  );

这对你有用。

【讨论】:

jsfiddle.net/boyfunky/oqxxmrru我有一个小提琴文件也许你可以帮我从这里解决它? 您还没有在小提琴中添加库。并且字段名称不正确。您可以在此处查看工作示例:jsfiddle.net/f7j6kn3b【参考方案2】:

试试下面的方法

HTML 部分:

<div class="start_date"></div>
<div class="end_date"></div>

JS部分:

 var dates = jQuery('.start_date, .end_date').datepicker("option", "onSelect", 
   function(selectedDate)
       var $this = $(this),
           option = $this.hasClass("start_date") ? "minDate" : "maxDate",
           adjust = $this.hasClass("start_date") ? 1 : -1,
           base_date = new Date(selectedDate),
           new_date = new Date();

       new_date.setDate(base_date.getDate() + (1 * adjust));
       dates.not(this).datepicker("option", option, new_date);

   
);

Demo希望对你有帮助

【讨论】:

以上是关于为 2 Datepicker 开始日期和结束日期设置验证 javascript的主要内容,如果未能解决你的问题,请参考以下文章

Datepicker jQuery 和 Gravity 表单的开始和结束日期

当值设置为超过最大日期时,Kendo Datepicker 显示错误的格式

jquery-ui datepicker 设置开始结束时间选择范围

将 DatePicker 日期转换为 UTC 格式返回 NULL

开始和结束日期是 Zebra DatePicker 的同一天

My97DatePicker时间日期控件设置,开始时间--结束时间