我正在使用meioMask - 一个jQuery掩码插件,用于将时间掩码放在文本框中。这是JsFiddle。它运作良好。但我还需要在文本框中放置hh:mm
,让用户知道在文本框中输入的内容。
如何做到这一点。
编辑:我还需要在面具中加上am / pm。我需要12小时的时间格式。
答案 0 :(得分:5)
如果你想要它简单而干净,这是一个快速但完整的演示(参见:http://jsfiddle.net/bEJB2/),其中包括placeholder
和一起工作的面具。它使用jQuery插件jquery.maskedinput。 JavaScript非常简洁明了
<div class="time-container">
<h1> Demo of Mask for 12 Hour AM/PM Input Field w/ Place Holder </h1>
<input class="timepicker" type="text" size="10" placeholder="hh:mm PM" />
</div>
<script>
$.mask.definitions['H'] = "[0-1]";
$.mask.definitions['h'] = "[0-9]";
$.mask.definitions['M'] = "[0-5]";
$.mask.definitions['m'] = "[0-9]";
$.mask.definitions['P'] = "[AaPp]";
$.mask.definitions['p'] = "[Mm]";
$(".timepicker").mask("Hh:Mm Pp");
</script>
我会回应@YiJiang在非HTML5浏览器中对placeholder
处理{{1}}所说的内容。
答案 1 :(得分:3)
我认为这可能有效
$(document).ready(function(){
$("#txtTime").setMask('time').val('hh:mm');
})
答案 2 :(得分:3)
看起来您应该能够使用插件进行设置。
这可能是一个开始?
如果您查看代码,我认为您应该传递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
答案 3 :(得分: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
属性添加功能检测。
答案 4 :(得分:1)
使用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");
};
}
});