Javascript 时间选择器范围更新
Posted
技术标签:
【中文标题】Javascript 时间选择器范围更新【英文标题】:Javascript timepicker range update 【发布时间】:2019-02-06 06:44:20 【问题描述】:我正在使用这个时间选择器http://jonthornton.github.io/jquery-timepicker/
当用户第一次从 datepicker 中选择日期时,我会从服务器获取数据并将它们以正确的格式放入数组中。这个数组用于 disableTimeRanges 中的 timepicker。这在用户第一次单击时有效,但当用户第二次更改日期时 disableTimeRanges 不会更新,因此它与第一次保持相同。
当用户点击日期选择器时,有没有办法“重置”时间选择器?
这是一个代码:
$("#datefrom").datepicker(
dateFormat: 'dd-mm-yy',
onSelect: function (date)
$.post("ajax-date-check.php", 'date': date, function(result)
var ret = result.replace(/"/g,'');
var length = ret.length;
var string = ret.slice(1, length-1);
var array = JSON
.parse('[' + string.replace(/'/g, '"') + ']')
.reduce((r, s, i) => r.concat([i % 2 ? r.pop().concat(s) : [s]]),
[]);
$('.timepicker1').timepicker(
'timeFormat': 'H:i',
'minTime': '8:00am',
'maxTime': '8:00pm',
'disableTimeRanges': array,
'show2400': true
);
);
);
【问题讨论】:
【参考方案1】:为什么你的数组在 $.post() 中声明?
试试这个
$("#datefrom").datepicker(
dateFormat: 'dd-mm-yy',
onSelect: async function (date)
var array;
await $.post("ajax-date-check.php", 'date': date, function(result)
var ret = result.replace(/"/g,'');
var length = ret.length;
var string = ret.slice(1, length-1);
array = JSON
.parse('[' + string.replace(/'/g, '"') + ']')
.reduce((r, s, i) => r.concat([i % 2 ? r.pop().concat(s) : [s]]),
[]);
$('.timepicker1').timepicker(
'timeFormat': 'H:i',
'minTime': '8:00am',
'maxTime': '8:00pm',
'disableTimeRanges': array,
'show2400': true
);
);
);
【讨论】:
是一回事。 @user3590094 尝试使用异步和等待。我更新了答案。以上是关于Javascript 时间选择器范围更新的主要内容,如果未能解决你的问题,请参考以下文章