我有一个简单的" onKeyUp" Javascript例程应该处理将输入字段添加到输入字段以格式化电话号码,转向" 1234567890"进入" 123-456-7890"。但是,如果用户键入太快,例程显然没有触发,或者事件丢失,我不确定。但在这种情况下,破折号不会被插入。
有人可以建议修复此问题吗?这是例程:
function(event, field) {
// Don't add dashes if user pressed backspace
if (event.keyCode != 8 ) {
if (field.value.length == 3 || field.value.length == 7) {
field.value = field.value + "-";
}
}
};
答案 0 :(得分:1)
var dashes = function(event, field) {
if (event.keyCode != 8 ) {
var arr = field.value.split(''),
l = arr.length;
if(l > 2 && arr[3] != "-") arr.splice(3, 0, "-");
if(l > 6 && arr[7] != "-") arr.splice(7, 0, "-");
field.value = arr.join('');
}
};
var input = document.getElementById('in');
input.addEventListener('keyup',function(event){
dashes(event, input);
});