場景
最近有個需求,需要選擇時間段,例如10:00 ~ 12:30。
目前的系統前端用的是layui,時間插件自然是選擇了laydate。
查閱了laydate的api發現並沒有直接可以設置去掉秒並且分鐘只顯示整10的配置。
然後就決定動手自己寫一下。
layui.use('laydate', function(){
var laydate = layui.laydate;
laydate.render({
elem: '#scheStartTime'+trindex,
type:'time',
trigger:'click',
format: 'HH:mm',
btns: ['clear', 'confirm'],
ready: formatminutes
});
});
首先設置format爲'HH:mm' 格式,去除掉秒的展示。然後在ready中寫一個方法,ready的方法會在綁定之前執行。
function formatminutes(date){
var aa = $(".laydate-time-list li ol")[1];
var showtime = $($(".laydate-time-list li ol")[1]).find("li");
for (var i = 0; i < showtime.length; i++) {
var t00 = showtime[i].innerText;
if (t00 != "00" && t00 != "10" && t00 != "20" && t00 != "30" && t00 != "40" && t00 != "50") {
showtime[i].hidden = true;
}
}
$($(".laydate-time-list li ol")[2]).find("li").remove(); //清空秒
}
formatminutes方法中進行移除非整10的分鐘(此處最好使用hidden不要使用remove,我發現remove會導致設置最大值最小值時候出現問題),並且移除掉秒的li。
實現效果如圖所示。