开发者社区 问答 正文

钉钉日期控件范围自定义

产品里有开始和结束时间,结束时间不能小于开始时间。但是我看钉钉的api里没有对日期控件范围的设置。怎么自定义呢?比方说:开始时间是2017-10-10,结束日期就要从11号开始选择,11号之前的日期不能选择

展开
收起
代码小童工 2017-10-10 09:32:58 4784 分享 版权
阿里云 AI 助理回答

在钉钉的API中,确实没有直接提供限制日期选择范围的设置选项。但是,你可以通过前端技术(如JavaScript)来实现这个需求。具体做法是:当用户在开始日期的日期控件上选择了一个日期后,动态地修改结束日期控件的可选日期范围。

以下是一个简单的示例代码,使用了jQuery库来简化DOM操作:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义日期范围选择</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.org/moment.js/2.24.0/moment.min.js"></script>
    <script src="https://cdn.staticfile.org/eonasdan-bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
    <link rel="stylesheet" href="https://cdn.staticfile.org/eonasdan-bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css">
</head>
<body>

<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker1'>
                    <input type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker2'>
                    <input type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
    $(function () {
        $('#datetimepicker1').datetimepicker({
            format: 'YYYY-MM-DD',
            useCurrent: false // 关闭当前时间默认选中
        });
        $('#datetimepicker2').datetimepicker({
            format: 'YYYY-MM-DD',
            useCurrent: false // 关闭当前时间默认选中
        });

        $("#datetimepicker1").on("dp.change", function (e) {
            $('#datetimepicker2').data("DateTimePicker").minDate(e.date.add(1, 'day')); // 设置结束日期最小值为开始日期的次日
        });

        $("#datetimepicker2").on("dp.change", function (e) {
            $('#datetimepicker1').data("DateTimePicker").maxDate(e.date); // 如果需要,也可以限制开始日期不能大于结束日期
        });
    });
</script>

</body>
</html>

这段代码使用了Eonasdan Bootstrap DateTimePicker插件,首先引入了必要的CSS和JS文件,然后通过JavaScript监听开始日期的选择事件,一旦开始日期被选定,就立即更新结束日期控件的最小可选日期为开始日期的次日。这样就可以确保结束日期不能小于开始日期。

请注意,实际应用中你可能需要根据你的项目环境调整资源链接或使用其他日期选择器插件,但基本逻辑类似。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
API
问答标签:
问答地址: