Предотвратить пробел в начале ввода

1

В основном я пытался создать js-скрипт, который предотвращает существование символа пробела от начала ввода, который я пытался понять, но пока не повезло. Большинство рабочих примеров этой темы основаны на jQuery. Я не могу найти какие-либо рабочие примеры in pure java script. Нет jQuery чистого кода Javascript.

//??
<input id='noWhiteSpaceAtTheStart' type='text'>
  • 3
    Вы имеете в виду небольшой отступ перед элементом ввода или внутри текстового поля? потому что я не вижу пробелов в текстовом поле
Теги:

3 ответа

2
Лучший ответ

Вы можете попробовать RegEx /^\s/ совместить пробел в начале строки. Затем просто установите входное значение пустым (''), если условие истинно:

function validate(input){
  if(/^\s/.test(input.value))
    input.value = '';
}
<input id='noWhiteSpaceAtTheStart' oninput="validate(this)" type='text'/>
0

var inp =  document.querySelector('#noWhiteSpaceAtTheStart');
inp.addEventListener("keypress",function(e){
var key = e.keyCode;
if(key === 32){
e.preventDefault();
return false;
}
})
<input id='noWhiteSpaceAtTheStart' type='text'>
  • 0
    использование e.preventDefault для предотвращения его поведения по умолчанию и предотвращения пробелов при нажатии клавиш
0

let yourInput = document.getElementById('noWhiteSpaceAtTheStart');
yourInput.addEventListener('input', () => {
    yourInput.value = yourInput.value ? yourInput.value.trimStart() : '' 
})
<input id='noWhiteSpaceAtTheStart' type='text'/>

Это должно сделать трюк:

на входном событии, если значение input.value не undefined (для проверки наличия фальши достаточно) установить пустую строку, чтобы убедиться, что мы не вызываем методы на неопределенный объект...

В противном случае возвращайте то же значение после вызова trimStart на нем!

EDIT: первый ответ, который я предлагал использовать событие change - но это срабатывает только для "отправки": щелчок снаружи, нажатие на вкладку и т.д.... Событие input вместо этого запускается при каждом редактировании.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню