В основном я пытался создать js-скрипт, который предотвращает существование символа пробела от начала ввода, который я пытался понять, но пока не повезло. Большинство рабочих примеров этой темы основаны на jQuery. Я не могу найти какие-либо рабочие примеры in pure java script
. Нет jQuery чистого кода Javascript.
//??
<input id='noWhiteSpaceAtTheStart' type='text'>
Вы можете попробовать RegEx /^\s/
совместить пробел в начале строки. Затем просто установите входное значение пустым (''
), если условие истинно:
function validate(input){
if(/^\s/.test(input.value))
input.value = '';
}
<input id='noWhiteSpaceAtTheStart' oninput="validate(this)" type='text'/>
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'>
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
вместо этого запускается при каждом редактировании.