Задать вопрос

Как добавить неудаляемый текст в input при его фокусе?

Здравствуйте. Имеется вот такой скрипт https://jsfiddle.net/wqx97cnj/

Как можно сделать так, чтобы значение "г. Оленегорск, " которое появляется при .focus нельзя было удалить, а лишь только добавить к нему свой текст при вводе?
  • Вопрос задан
  • 417 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@smartycms Автор вопроса
$('.test').focus(function(){
		if($(this).val() === '') {
    	$(this).val('г. Оленегорск, ');
    }
});

$('.test').blur(function(){
    if($(this).val() === 'г. Оленегорск, '){
    	$(this).val('');
    }
});

$('.test').keydown(function(){
    if($(this).val().length < 'г. Оленегорск, '.length){
    	$(this).val('г. Оленегорск, ');
    }
});
Ответ написан
mishk0x29A
@mishk0x29A
Учёл ввод текста с середины текста по умолчанию.
https://jsfiddle.net/zp37ovbu/1/

var city = 'г. Оленегорск, ';
var input = $('.test');

input.focus(function(){
		if(input.val() === '') {
    	input.val('').val(city);
    }
});

input.blur(function(){
    if (input.val() === city){
    	input.val('');
    }
});

input.on('input change', function(){
  var oldValue = input.val();
  var newValue = city;
  if (oldValue.length > city.length) {
    for (var i = city.length; i <= oldValue.length; i++) {
    	if (typeof oldValue[i] !== 'undefined') {
      	newValue = newValue + oldValue[i];
      }
    }
  }
  input.val(newValue);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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