如何使用libphonenumber AsYouTypeFormatter处理退格键

时间:2018-10-03 23:16:15

标签: javascript typescript keyboard-events backspace libphonenumber

我正在尝试将google-libphonenumber]与Web表单上的简单输入元素一起使用。我将用户键入的每个键传递给AsYouTypeFormatter方法。我遇到的问题是,当用户按下退格键时,google-libphonenumber不会删除最后一位数字,而只是将inputDigit附加到电话号码上。我使用AsYouTypeFormatter的方式不正确吗?它不能处理退格键吗?如果是这样,并且我怀疑是这种情况,那么我应该如何处理用户按下退格键的情况?

以下是示例项目的链接:https://stackblitz.com/edit/libphonenumber

这是代码:

Backspace

1 个答案:

答案 0 :(得分:1)

"isNumber": function(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;

if ((charCode > 31 && (charCode < 48 || charCode > 57) || charCode === 46 || charCode === 13)) {
    //do not allow non numeric characters 
    evt.preventDefault();
}else{
    //ok: numeric character
    //handle phone number masking.
    this.phoneNumberForm =this.formatter.inputDigit(evt.key);
}

我还没有找到将格式化程序索引移回的任何方法。 (这并不意味着他们不在那里) 我所做的是防止退格键下降事件。以及任何其他非数字字符。这是我使用的功能: