如何使用 libphonenumber AsYouTypeFormatter 处理退格键
How to handle backspace with libphonenumber AsYouTypeFormatter
我正在尝试将 google-libphonenumber 的 AsYouTypeFormatter
与 Web 表单上的简单输入元素一起使用。我将用户键入的每个键传递给 inputDigit
方法。我 运行 遇到的问题是,当用户按下退格键时,google-libphonenumber 不会删除最后一位数字,只是将 Backspace
附加到 phone数。我使用 AsYouTypeFormatter 不当吗?它不能处理退格吗?如果是这样,我怀疑是这种情况,我应该如何处理用户按下退格键的情况?
这是一个 link 示例项目:https://stackblitz.com/edit/libphonenumber
这是代码:
import { AsYouTypeFormatter } from 'google-libphonenumber';
const appDiv: HTMLElement = document.getElementById('app');
appDiv.innerHTML = `
<h1>Libphonenumber Playground</h1>
<input id="input" type="text">
`;
this.formatter = new AsYouTypeFormatter('us');
const input = document.getElementById('input') as HTMLInputElement;
input.addEventListener('keyup', (event: KeyboardEvent) => {
console.log(this.formatter.inputDigit(event.key));
});
"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);
}
我还没有找到任何可以将格式化程序索引移回的方法。
(这并不意味着他们不存在)
我所做的是防止退格键按下事件。与任何其他 non-numeric 字符一起。这是我使用的函数:
我正在尝试将 google-libphonenumber 的 AsYouTypeFormatter
与 Web 表单上的简单输入元素一起使用。我将用户键入的每个键传递给 inputDigit
方法。我 运行 遇到的问题是,当用户按下退格键时,google-libphonenumber 不会删除最后一位数字,只是将 Backspace
附加到 phone数。我使用 AsYouTypeFormatter 不当吗?它不能处理退格吗?如果是这样,我怀疑是这种情况,我应该如何处理用户按下退格键的情况?
这是一个 link 示例项目:https://stackblitz.com/edit/libphonenumber
这是代码:
import { AsYouTypeFormatter } from 'google-libphonenumber';
const appDiv: HTMLElement = document.getElementById('app');
appDiv.innerHTML = `
<h1>Libphonenumber Playground</h1>
<input id="input" type="text">
`;
this.formatter = new AsYouTypeFormatter('us');
const input = document.getElementById('input') as HTMLInputElement;
input.addEventListener('keyup', (event: KeyboardEvent) => {
console.log(this.formatter.inputDigit(event.key));
});
"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);
}
我还没有找到任何可以将格式化程序索引移回的方法。 (这并不意味着他们不存在) 我所做的是防止退格键按下事件。与任何其他 non-numeric 字符一起。这是我使用的函数: