【发布时间】:2017-04-24 02:40:29
【问题描述】:
我想用掩码和自动完成输入日期时间。
我在存在问题的地方创建了小demo。
看起来自动完成认为掩码是一个文本......只有当我完成输入时,我才能从自动完成中看到一些值(如果它存在于自动完成列表中)。
有什么解决办法吗?
<input name="field1" id="field1" class="inputmask" data-inputmask="'mask': 'h:s t\\m','placeholder': 'hh:mm xm', 'hourFormat': '12', 'alias': 'datetime'"/>
function generateTime(){
var times = [];
Array(24).join(',').split(',').forEach(function (_, index) {
var hour = index;
if (hour < 10) {
hour = '0' + hour;
}
times.push(moment(hour + ':00', 'HH:mm').format('hh:mm a'));
times.push(moment(hour + ':30', 'HH:mm').format('hh:mm a'));
});
return times;
}
$('.inputmask').inputmask();
$('.inputmask').autocomplete({
source: generateTime()
});
更新:
也许是解决方案的一些起点:如果我将添加属性 'autoUnmask' : true AutoComplete 将仅适用于“小时” - 第一个符号直到我的“:”在掩码中。
【问题讨论】:
-
我在这里看到的问题是输入中的值永远不会与源匹配。如果输入掩码在字段具有焦点时允许该值不是
hh:mm xm,那么它会按预期工作。必须调查。
标签: javascript jquery jquery-ui autocomplete jquery-inputmask