使用jquery输入时间掩码

我正在使用meioMask – 一个jQuery掩码插件,将时间掩码放在文本框中。 这是JsFiddle 。 它运作良好。 但我还需要在文本框中输入hh:mm ,让用户知道要在文本框中输入什么内容。

这该怎么做。

编辑:我还需要将am / pm放在掩码中。 我需要12小时的时间格式。

看起来您应该可以使用插件设置它。

这可能是一个开始?

如果查看代码,我认为你应该传递setMask一个options对象。 看起来defaultValue是一个可能的选择。

看起来以下应该可以工作(但它没有):

  $("#txtTime").setMask({mask: "time", defaultValue:"hh:mm"}); 

这就是我所看到的:

 $.fn.extend({ setMask : function(options){ return $.mask.set(this, options); }, 

  // default settings for the plugin options : { attr: 'alt', // an attr to look for the mask name or the mask itself mask: null, // the mask to be used on the input type: 'fixed', // the mask of this mask maxLength: -1, // the maxLength of the mask defaultValue: '', // the default value for this input 

如果你想要它简单和干净这里是一个快速但完整的演示(参见: http : //jsfiddle.net/bEJB2/ ),其中包括placeholder和掩码一起工作。 它使用jQuery插件jquery.maskedinput 。 JavaScript非常干净清晰

 

Demo of Mask for 12 Hour AM/PM Input Field w/ Place Holder

我会回应@YiJiang所说的关于PolyFills和Modernizr在非HTML5浏览器中处理placeholder

我认为这可能有用

  $(document).ready(function(){ $("#txtTime").setMask('time').val('hh:mm'); }) 

http://www.jsfiddle.net/9dgYN/1/

您可以使用HTML5 placeholder属性来创建占位符文本,然后使用jQuery为不支持它的浏览器添加支持,并在input元素获得焦点后将其删除。

 var timeTxt = $("#txtTime").setMask('time'); var placeholder = timeTxt.attr('placeholder'); timeTxt.val(placeholder).focus(function(){ if(this.value === placeholder){ this.value = ''; } }).blur(function(){ if(!this.value){ this.value = placeholder; } }); 

见: http : //www.jsfiddle.net/9dgYN/2/ 。 您还应该考虑使用Modernizr之类的脚本为placeholder属性添加特征检测。

使用jQuery Masked Input Plugin。

 $.mask.definitions['H'] = "[0-2]"; $.mask.definitions['h'] = "[0-9]"; $.mask.definitions['M'] = "[0-5]"; $.mask.definitions['m'] = "[0-9]"; $(".timepicker").mask("Hh:Mm", { completed: function() { var currentMask = $(this).mask(); if (isNaN(parseInt(currentMask))) { $(this).val(""); } else if (parseInt(currentMask) > 2359) { $(this).val("23:59"); }; } });