可以使用KEYUP只是檢查,如果關鍵背面是一個按什麼也不做
document.getElementById('cardNumber').addEventListener('keyup', function (e) {
var key = event.which || event.keyCode || event.charCode;
var field = e.target;
if (key !== 8) {
field.value = field.value.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim();
}
});
DEMO
OR
可使用create一個函數在你的文本輸入的每個關鍵事件中都使用它來完全禁用非整數字符和字母事件粘貼非整數字符
document.getElementById('cardNumber').addEventListener('keyup', format);
document.getElementById('cardNumber').addEventListener('keydown', format);
document.getElementById('cardNumber').addEventListener('copy', format);
document.getElementById('cardNumber').addEventListener('keypress', format);
function format(e) {
var key = event.which || event.keyCode || event.charCode;
var field = e.target;
if (key !== 8) {
field.value = field.value.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim();
}
}
DEMO
,你也可以接受箭頭,如果這情況下,添加此條件
(key < 37 || key > 39)
使你的病情會是這樣
if (key !== 8 && (key < 37 || key > 39)) {
field.value = field.value.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim();
}
DEMO
謝謝。 雖然這不允許進行多次編輯,但只要按下一個鍵就可以重新渲染該字段並將其拍攝回去。 一個更現實的用例是讓人們回去編輯場地中的多個數字,所以跳回到最後將成爲一個障礙。 –
好的,我可以添加多個編輯,如果你想,只是問我 – Beginner