我试图在日期选择器中获取预订房间的所有日期,我使用内置函数 isInvalidDate 得到了这个,问题是它现在是静态的,我需要添加 || date.format('YYYY-MM-DD') == '<?php echo $items['1'] ?>'
对于数组中的每个项目。
我可以在某种循环中执行此操作吗? var_dump 的输出是:`
array(7) { [0]=> string(10) "2017-06-09" [1]=> string(10) "2017-06-10" [2]=> string(10) "2017-06-11" [3]=> string(10) "2017-06-12" [4]=> string(10) "2017-06-14" [5]=> string(10) "2017-06-15" [6]=> string(10) "2017-06-16" }
` 因此,每次使用脚本时,数组中的项目数量可能会或多或少。
<script type="text/javascript">
$(function() {
$('input[name="datefilter"]').daterangepicker({
autoUpdateInput: false,
linkedCalendars: false,
selectPastInvalidDate: false,
isInvalidDate: function(date) {
if (date.format('YYYY-MM-DD') == '<?php echo $items['0'] ?>' || date.format('YYYY-MM-DD') == '<?php echo $items['1'] ?>') {
return true;
} else {
return 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>
最佳答案
使用 json_encode()
将完整数组传递给 JavaScript 变量,然后使用 JavaScript 数组方法
var inValidDates = <?php echo json_encode($items) ?>;
$('input[name="datefilter"]').daterangepicker({
....
isInvalidDate: function(date) {
return inValidDates.indexOf(date.format('YYYY-MM-DD')) >-1;
},
.....
});
关于javascript - 在 JavaScript 中使用循环代替大量 or 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434805/