@Alexis_D

Можно ли не очищать value input?

Доброго времени суток! Есть input, допустим, с value="ааа", как с помощью js или jquery сделать так, чтобы нельзя было очищать его(delete или backspace), но при этом можно было вписывать в этот input продолжение текста? Пробовал disabled - но он только блокирует, readonly - нельзя вписывать ничего дальше.
  • Вопрос задан
  • 640 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Argumentus
Как вариант перехватывать событие на нажатие клавиши бэкспейс, делит и по нажатию на эти клавиши ничего не делать.
Ответ написан
@BigSmoke
<input type="text" id="a" value="aaa">

var inp = document.getElementById('a');

inp.addEventListener('input', function () {
  if(inp.value.length <= 3) {
    inp.value = 'aaa';
  }
});

Наверняка как-то все равно можно изменить первые три символа value, но в большенстве случаев будет работать )
Ответ написан
Комментировать
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Подпишитесь на onchange, и к value дописывайте "aaa" в начало текста.

var input = document.querySelector('input.class');
input.addEventListener('change', function(e){
var val = 'aaa' + e.target.value;
e.target.value = val;
}
Ответ написан
Комментировать
@BelkinVadim
Frontend разработчик
Перехватывать только нажатия delete или backspace не вариант, ведь удалять можно еще через контекстное меню. Плюс можно выделить весь текст и нажать клавишу с каким-то символом и все заменится на жэтот символ - такой вариант допустим?
Если задача такая что разрешено ТОЛЬКО дописываться к текущему значению, а удалять все или часть или заменять все или часть на что-то другое нельзя, то вам нужно хранить текущее значение поля и при изменении (лучше на событие input, если поддержка устроит) сравнивать его с новым. В случае если новое значение не содержит в себе предыдущее значение плюс новые символы, то возвращать исходное значение
Пример, проверяется содержится ли в начале нового значения предыдущее значение, если да, то в переменных обновляем переменную текущего значения для дальнейшего сравнения с ним, если не содержит - устанавливаем предыдущее значение. Работает как с удалением по кнопкам, так и через контекстное меню
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы