首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果输入日期小于4个月,则禁用按钮。

如果输入日期小于4个月,则禁用按钮。
EN

Stack Overflow用户
提问于 2017-11-08 08:08:26
回答 6查看 1.5K关注 0票数 2

当输入日期小于4个月时,我想禁用next按钮。获取当前日期并检查当前日期是否小于4个月。如果它较小,请禁用next按钮并发出警报。

我尝试使用一个警报按钮来测试数据报警器,但这没有起作用:

代码语言:javascript
运行
复制
jQuery(document).ready(function($) {
  $('#input_18_104').datepicker({
    onSelect: function() {
      var date = $(this).datepicker('getDate');
      var today = new Date();
      if ((new Date(today.getFullYear(), today.getMonth(), today.getDate() + 120)) < date) {
        //Do somthing here..
        alert(123);
      }

    },
  });
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.css" rel="stylesheet" />

<input name="input_104" id="input_18_104" type="text" class="datepicker medium mdy datepicker_no_icon hasDatepicker" tabindex="72" placeholder="Date?"> Next button:

<input type="button" id="next_button_18_94" class="form_next_button button" value="Next" tabindex="76">

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-11-08 08:21:22

您的实际情况是错误的,today.getDate()+120会给出一个比120更高的数字,这会导致错误的date,那么您的比较并不总是正确的。

您需要分别比较month值,这是您可以这样做的:

代码语言:javascript
运行
复制
$(document).ready(function () {
    $('#input_18_104').datepicker()
        .on("input change", function (e) {
            var date = $(this).datepicker('getDate');
            var today = new Date();

            if ((today.getMonth() + 11) - (date.getMonth() + 11) > 4) {
                alert("The date is wrong");
            } else if (((today.getMonth() + 11) - (date.getMonth() + 11) == 4) && (today.getDate() > date.getDate())) {
                alert("The date is wrong");
            } else {
                console.log("Date is fine");
            }
        });
});

Explanataion:

  • 我们使用date.getMonth() + 11来确保不获得负值,因此我们将11添加到2 months值中,因此不会影响测试。
  • 然后,我们检查这两个值之间的差异是否大于4,所以选择日期很好。

演示:

代码语言:javascript
运行
复制
$(document).ready(function() {
      $('#input_18_104').datepicker()
        .on("input change", function(e) {
            var date = $(this).datepicker('getDate');
            var today = new Date();
            
            if ((today.getMonth() + 11) - (date.getMonth() + 11) > 4) {
              alert("The date is wrong");
            } else if (((today.getMonth() + 11) - (date.getMonth() + 11) == 4) && (today.getDate() > date.getDate())) {
                alert("The date is wrong");
              } else {
                console.log("Date is fine");
              }
            });
        });
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.css" rel="stylesheet" />

<input name="input_104" id="input_18_104" type="text" class="datepicker medium mdy datepicker_no_icon hasDatepicker" tabindex="72" placeholder="Date?"> Next button:

<input type="button" id="next_button_18_94" class="form_next_button button" value="Next" tabindex="76">

票数 1
EN

Stack Overflow用户

发布于 2017-11-08 08:26:44

下面的方法将有效

代码语言:javascript
运行
复制
jQuery(document).ready(function($) {
  $("#input_18_104").datepicker({
dateFormat: 'dd/mm/yy'}).on("changeDate", function (e) {
alert("Working");});
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/css/bootstrap-datepicker.css" rel="stylesheet" />

<input name="input_104" id="input_18_104" type="text" class="datepicker medium mdy datepicker_no_icon hasDatepicker" tabindex="72" placeholder="Date?"> Next button:

<input type="button" id="next_button_18_94" class="form_next_button button" value="Next" tabindex="76">

票数 0
EN

Stack Overflow用户

发布于 2017-11-08 08:32:21

使用monthDiff函数

代码语言:javascript
运行
复制
jQuery(document).ready(function ($) {
    $('#input_18_104').datepicker({
        onSelect: function () {
            var date = $(this).datepicker('getDate');
            var today = new Date();
            if (monthDiff(today, date) < 4) {
                //Do somthing here..
                alert(123);
            }

        },
    });
});

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth() + 1;
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47174515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档