问题描述
我正在尝试在我的网络项目中实现 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',picker) {
$(this).val('');
});
});
</script>
解决方法
使用 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',picker) {
$(this).val('');
});
$('input[name="datefilter"]').on('show.daterangepicker',picker) {
setTimeout(function(){
alert("You have opened datepicker");
},0);
});
});
</script>