В Angular 19, на мероприятии Keydown, Space -Bar не игнорируетсяJavascript

Форум по Javascript
Ответить
Anonymous
 В Angular 19, на мероприятии Keydown, Space -Bar не игнорируется

Сообщение Anonymous »

Я использую Angular 19 Ceakdown Event на текстовом поле. Это должно разрешать только числа и десятичные десятичные знаки до 2 мест. Допустимые числа: 123,45, 675,1, 12345 и т. Д. < /p>
Это работает правильно для всех ключей, кроме пробела. Хотя я проигнорировал это. При щелчке Space Bar, 2 три раза он вставляет пространство в текстовое поле. Мой код ниже: < /p>
onKeyDown = (event:KeyboardEvent): boolean {
const regex = new RegExp(/^[0-9.]*$/);
if(!regex.test(event.key) && event.key.length === 1 && event.code !== "Space") {
event.preventDefault();
return false;
}

const target = event.target as HTMLInputElement;
const start = target?.selectionStart || 0;
const value = target.value.substring(0,start)+event.key+target.value.substring(start);

const newRegex = new RegExp(/^(0|[1-9]\d*)?(\.\d{0,2})?$/
if(!newRegex.test(value) && event.key.length === 1 && event.code !== "Space") {
event.preventDefault();
return false;
}
return true;
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-ignored
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»