如何检查日期范围选择器中的日期是不是更改?
Posted
技术标签:
【中文标题】如何检查日期范围选择器中的日期是不是更改?【英文标题】:How to check date is change in date range picker?如何检查日期范围选择器中的日期是否更改? 【发布时间】:2021-04-08 08:05:47 【问题描述】:我正在使用 Bootstrap 日期范围选择器,我希望如果用户更改日期,那么我会提交新数据的表单。这是我的代码,
$(document).ready(function ()
var start = moment().subtract(29, 'days');
var end = moment();
function cb(start, end)
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$('#start_date').val(start.format('YYYY-MM-DD'))
$('#end_date').val(end.format('YYYY-MM-DD'))
$('#reportrange').daterangepicker(
startDate: start,
endDate: end,
ranges:
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
, cb);
cb(start, end);
)
我的表格是 我怎样才能做到这一点。谢谢
【问题讨论】:
【参考方案1】:$(document).ready(function()
$(function()
var start = moment().subtract(29, 'days');
var end = moment();
function cb(start, end)
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$('#start_from').val(start.format('DD-MM-YYYY'));
$('#start_to').val(end.format('DD-MM-YYYY'));
$('#reportrange2 span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$('#start_from2').val(start.format('DD-MM-YYYY'));
$('#start_to2').val(end.format('DD-MM-YYYY'));
if(searchOn == true)
searchrow(1);
$('#reportrange').daterangepicker(
startDate: start,
endDate: end,
ranges:
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
, cb);
$('#reportrange2').daterangepicker(
startDate: start,
endDate: end,
ranges:
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
, cb);
cb(start, end);
);
);
【讨论】:
【参考方案2】:Duplicate?我想这是您回答问题的方式。
$('#reportrange').on('apply.daterangepicker', function(ev, picker)
alert ('hello');
);
无论哪种方式,您都可以在日期更改时使用回调 (cb) 提交表单,方法是添加一些触发器来提交表单,例如:$("#someform").submit();确保在每次更改表单输入时插入所选日期。
此外,在daterangepicker 示例中。我想你也会在那里找到你的解决方案。
我拿走了您的代码,只需将 span 更改为 input 并将 html 更改为 val 即可。
<script type="text/javascript">
$(document).ready(function ()
var start = moment().subtract(29, "days");
var end = moment();
function cb(start, end)
$("#reportrange input").val(
start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY")
);
$("#start_date").val(start.format("YYYY-MM-DD"));
$("#end_date").val(end.format("YYYY-MM-DD"));
$("#someform").submit();
$("#reportrange").daterangepicker(
startDate: start,
endDate: end,
ranges:
Today: [moment(), moment()],
Yesterday: [
moment().subtract(1, "days"),
moment().subtract(1, "days")
],
"Last 7 Days": [moment().subtract(6, "days"), moment()],
"Last 30 Days": [moment().subtract(29, "days"), moment()],
"This Month": [
moment().startOf("month"),
moment().endOf("month")
],
"Last Month": [
moment().subtract(1, "month").startOf("month"),
moment().subtract(1, "month").endOf("month")
]
,
cb
);
cb(start, end);
);
</script>
【讨论】:
谢谢daterangepicker.com/#examples这对我的帮助谢谢以上是关于如何检查日期范围选择器中的日期是不是更改?的主要内容,如果未能解决你的问题,请参考以下文章