Javascript 具有自动完成功能的输入掩码
我想用mask和autocomplete输入dateTime 我已经在存在问题的地方创建了小的 看起来autocomplete认为掩码是一个文本。。。只有当我完成输入时,我才能从自动完成中看到一些值(如果它存在于自动完成列表中) 有什么解决办法吗Javascript 具有自动完成功能的输入掩码,javascript,jquery,jquery-ui,autocomplete,jquery-inputmask,Javascript,Jquery,Jquery Ui,Autocomplete,Jquery Inputmask,我想用mask和autocomplete输入dateTime 我已经在存在问题的地方创建了小的 看起来autocomplete认为掩码是一个文本。。。只有当我完成输入时,我才能从自动完成中看到一些值(如果它存在于自动完成列表中) 有什么解决办法吗 <input name="field1" id="field1" class="inputmask" data-inputmask="'mask': 'h:s t\\m','placeholder': 'hh:mm xm', 'hourFor
<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()
});
函数generateTime(){
var时间=[];
数组(24).join(',').split(',').forEach(函数(\ux,索引){
var小时=指数;
如果(小时<10){
小时='0'+小时;
}
推(力矩(小时+':00','HH:mm')。格式('HH:mm a'));
推(力矩(小时+':30','HH:mm')。格式('HH:mm a'));
});
返回次数;
}
$('.inputmask').inputmask();
$('.inputmask')。自动完成({
来源:generateTime()
});
UPD: 可能是解决方案的起点:如果我将添加属性“自动取消掩码”:trueAutoComplete将仅在“小时”内工作-直到掩码中的“:”为止的第一个符号
这里的问题是,
输入的值正在从输入掩码
传递到自动完成
输入值时检查输入的值
:
function generateTime(){
var时间=[];
数组(24).join(',').split(',').forEach(函数(\ux,索引){
var小时=指数;
如果(小时<10){
小时='0'+小时;
}
推(力矩(小时+':00','HH:mm')。格式('HH:mm a'));
推(力矩(小时+':30','HH:mm')。格式('HH:mm a'));
});
返回次数;
}
$('.inputmask').inputmask();
$('.inputmask')。自动完成({
来源:generateTime()
});
$(“#按钮”)。单击(函数(){
console.log($('input').val())
});代码>
Get
我在这里看到的问题是,输入中的值与源中的值不匹配。如果输入掩码允许在字段有焦点时该值不为hh:mm xm
,我认为它将按预期工作。我们必须调查。