【问题标题】:Jquery to Restrict users for date selectionJquery 限制用户选择日期
【发布时间】:2018-06-12 00:33:17
【问题描述】:

好的,我有一个包含三个字段的日期选项,即日期、月份和年份。

我想限制我的用户使用 Jquery,这样他们就不能选择超过 3 个月和 3 年的日期范围。

以下是我的字段

<select class="day">
<option value="--"></option>
<option value="1">1</option>
<option value="2">2</option>
.....
<option value="31">31</option>
</select>

<select class="month">
<option value="--"></option>
<option value="1">Jan</option>
<option value="2">Feb</option>
...
<option value="12">Dec</option>
</select>

<select class="year">
<option value="--"></option>
<option value="1900">1900</option>
<option value="1901">1901</option>
<option value="1902">1902</option>
....
<option value="2099">2099</option>
</select>

【问题讨论】:

  • 3 年零 3 个月与哪个日期相比?现在的戴尔?为什么不使用日期选择器,这样您就可以忘记闰年、日期验证和所有这些东西?
  • 是的,与当前日期相比,我没有日期选择器选项
  • 为什么不呢?有 3 个选择是一个限制?
  • 选择你想要的日期选择器,我会帮你
  • 默认的 html 日期选择器?您不能使用默认值来做到这一点:/

标签: jquery


【解决方案1】:

您可以使用选择的日期而不是 3 个不同的选择。这个 sn-p 使用引导日期选择器的this version

要将日期选择器限制在特定日期范围内,必须设置 endDate (more info about the option) 或 startDate (more info about the option) 选项(或同时设置两者)。这两个选项都接受特定的插件日期格式:

  • + 表示积极的日期,未来的日期
  • - 表示否定日期,过去的日期
  • 10d 指定天数,在本例中为 10
  • 2m 指定月份数,在本例中为 2
  • 1y 指定年数,在本例中为 1

因此,如果您需要将初始日期限制为从现在起的 3 年零 3 个月,您需要将 startDate 设置为 -3y -3m

希望对你有帮助。

$('.input-daterange').datepicker({
  startDate: "-3y -3m", // 3 years and 3 months from now
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/css/bootstrap-datepicker.min.css" rel="stylesheet">

    <div class="input-daterange input-group" id="datepicker">
        <input type="text" class="input-sm form-control" name="start" />
        <span class="input-group-addon">to</span>
        <input type="text" class="input-sm form-control" name="end" />
    </div>

【讨论】:

  • 谢谢,但这限制了用户只能选择 3 年前的日期,它不允许选择任何当前日期。我希望用户不要选择任何超过 3 年零 3 个月的日期范围,但他们仍然可以选择 3 年零 3 个月以下的任何日期
  • @AdeelAhmad 我不明白,在工作示例中,您可以选择从现在、过去到 +3 年零 3 个月的任何日期。
  • @muecus 是的,适用于此,但我需要它不选择任何过去的日期,即 -3 年零 -3 个月而不是 +3 年和 +3 个月 :)
  • @AdeelAhmad 让我看看我是否明白了,您需要一个日期范围,并将最短日期限制为过去 3 年零 3 个月。立即检查。
  • stackoverflow新手怎么做+1?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 2014-08-18
  • 2012-04-17
  • 1970-01-01
  • 2017-08-11
  • 2020-01-04
相关资源
最近更新 更多