jQuery Timepicker插件
我需要为表单创建一个时间选择组件,但是我不想有很多额外的组件。经过一番搜索,我发现了以下名为timepicker的JQueryUI插件。
该插件将以输入框作为参数,并将添加三个选择框,分别表示小时,分钟和秒。然后它将隐藏原始输入框。
但是,有两件事我需要这个插件不做。第一个是12小时格式,第二个是该插件没有第二个选择。因此,我决定修改该插件以合并这些内容。
这是修改后的插件。
(function($){ jQuery.fn.timepicker = function(){ this.each(function(){ //获取当前元素的ID和值 var i = this.id; var v = $(this).val(); //我们需要产生的选择 var hrs = new Array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'); var mins = new Array('00','05','10','15','20','25','30','35','40','45','50','55'); var secs = new Array('00','05','10','15','20','25','30','35','40','45','50','55'); //默认为当前时间 var d = new Date; var h = d.getHours(); var m = d.getMinutes(); var s = d.getSeconds(); //覆盖当前值(如果适用) //将分钟和秒四舍五入到最接近的10 if(v.length == 8){ h = parseInt(v.substr(0,2)); x = parseInt(v.substr(3,2)); m = (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5; x = parseInt(v.substr(6,2)); s = (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5; } //建立新的DOM对象 var output = ''; output += ''; output += ''; output += ''; //隐藏原始输入并追加新的替换输入 $(this).css('display','none'); $(this).after(output); }); $('select.timepicker').change(function(){ var i = this.id.substr(2); var h = $('#h_' + i).val(); var m = $('#m_' + i).val(); var s = $('#s_' + i).val(); var v = h + ':' + m + ':' + s; $('#' + i).val(v); }); return this; }; })(jQuery);
只要插件与格式HH:MM:SS匹配,该插件还将使用文本字段中显示的时间进行更新。
您可以使用以下代码运行插件: