如何在每次打开日期范围选择器对话框时显示警报?

Posted

技术标签:

【中文标题】如何在每次打开日期范围选择器对话框时显示警报?【英文标题】:How to show an alert everytime date range picker dialog is opened? 【发布时间】:2021-10-01 08:03:24 【问题描述】:

我正在尝试在我的网络项目中实现date range picker。我已按照文档中描述的所有步骤进行操作:

<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"> </script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<input type="text" name="datefilter" value="" />

<script type="text/javascript">
    $(function() 

        $('input[name="datefilter"]').daterangepicker(
             autoUpdateInput: false,
             locale: 
                 cancelLabel: 'Clear'
             
        );

        $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) 
             $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + 
             picker.endDate.format('MM/DD/YYYY'));
        );

        $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) 
            $(this).val('');
        );
    );
</script>
现在我想在每次出现date range picker 对话框时显示alert("You have opened datepicker")。我该怎么做?

【问题讨论】:

【参考方案1】:

使用show.daterangepicker event 显示警报。这是一个工作代码。我添加了一个在show.daterangepicker 事件上显示警报的功能。我使用了setTimeout,以便在下拉菜单出现之前警报不会阻塞 UI。

<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<input type="text" name="datefilter" value="" />

<script type="text/javascript">
    $(function() 

        $('input[name="datefilter"]').daterangepicker(
             autoUpdateInput: false,
             locale: 
                 cancelLabel: 'Clear'
             
        );

        $('input[name="datefilter"]').on('apply.daterangepicker', function(ev, picker) 
             $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + 
             picker.endDate.format('MM/DD/YYYY'));
        );

        $('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) 
            $(this).val(''); 
        );
        
        $('input[name="datefilter"]').on('show.daterangepicker', function(ev, picker) 
            setTimeout(function()
                alert("You have opened datepicker");
            , 0);
        );
        
    );
</script>

【讨论】:

以上是关于如何在每次打开日期范围选择器对话框时显示警报?的主要内容,如果未能解决你的问题,请参考以下文章

在点击文本字段时显示日期选择器

如何在 chrome 扩展程序中获取选项卡通知,以便扩展程序可以在每次新通知到达时显示桌面警报

如何在按钮单击时显示 DatePickerDialog? [关闭]

推送到达时显示警报

从 parse.com 控制台接收推送时显示警报对话框而不是通知

如何在日期选择器输入上显示占位符?