如何为jQuery Timepicker设置初始时间?现有代码无法生效
jQuery Timepicker 设置初始时间的正确方法
你遇到的问题是因为使用了错误的插件配置选项,以下是修正方案和问题分析:
问题原因
- 第一段代码里的
hour、minute并非该插件的初始化参数,设置后不会生效;你注释掉的val()方法其实有效,但你的timeFormat是HH:mm TT(24小时制+上午/下午标识),但初始时间仅为08:31,缺少TT部分,导致插件无法正确解析匹配格式。 - 第二段代码里的
startTime是用来定义时间选择器可选时间的起始范围,而非设置输入框的初始值,因此无法达到预期效果。
正确解决方案
方案1:初始化前设置输入框值(推荐)
确保初始时间格式与timeFormat完全匹配:
let pickip_time = "08:31 AM"; // 对应timeFormat:'HH:mm TT',需带上AM/PM // 若使用纯24小时制,可改为timeFormat:'HH:mm',初始时间用"08:31"即可 if(pickip_time){ $('#pickupTime').val(pickip_time); $('#pickupTime').timepicker({timeFormat:'HH:mm TT'}); } else { $('#pickupTime').timepicker({timeFormat:'HH:mm TT'}); }
方案2:初始化后调用setTime方法
let pickip_time = "08:31"; // 初始化插件 $('#pickupTime').timepicker({timeFormat:'HH:mm'}); // 设置初始时间 if(pickip_time){ $('#pickupTime').timepicker('setTime', pickip_time); }
补充:修正时间格式的建议
HH代表24小时制,TT代表上午/下午标识,两者组合会导致显示逻辑矛盾(例如14:31 PM),建议根据需求二选一:
- 24小时制:
timeFormat:'HH:mm' - 12小时制带标识:
timeFormat:'hh:mm TT'(注意用小写hh)
内容的提问来源于stack exchange,提问作者B L Praveen
相关产品推荐
相关产品推荐

