Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не удаляется введеное значение input при нажатии backspace проблема с маской? (https://javascript.ru/forum/jquery/84607-ne-udalyaetsya-vvedenoe-znachenie-input-pri-nazhatii-backspace-problema-s-maskojj.html)

ufaclub 26.10.2022 20:11

не удаляется введеное значение input при нажатии backspace проблема с маской?
 
<input value="1" name="length" class="input-lengtharray form-control" type="text" data-min="1" data-max="12" placeholder="от 1 до 12">




$('body').on('input', '.input-lengtharray', function(){

	var value = this.value.replace(/[^0-9\.]/g, '');
	

	if (value < $(this).data('min')) {

		this.value = $(this).data('min');

	} else if (value > $(this).data('max')) {

		this.value = $(this).data('max');

	} else {

		this.value = value;

	}
	

});


вот такой код, разрешает вводить только от 1 и до 12.

по умолчанию стоит value="1" в html

так вот странное поведение при вводе 1 - не получается удалить можно только курсором выделить эту 1 и тогда на ее место записать другое число от 1 до 12 с символом точка. Как будто вот этот код


var value = this.value.replace(/[^0-9\.]/g, '');


не разрешает нажатие кнопки backspace

ufaclub 26.10.2022 20:27

хотя тут срабатывает строка

this.value = $(this).data('min');


получается что когда 1 удаляю то сразу она возвращается.

если эту строку закомментировать тогда удаляется 1

но можно ввести 0.5 например.

а как не допустить ввода меньше 1 но при этом можно было бы удалять это число перед вводом.

рони 26.10.2022 20:31

Цитата:

Сообщение от ufaclub
.on('input',

change

Aetae 26.10.2022 20:56

Используй https://github.com/RobinHerbots/Inputmask .
Всё остальное - полумеры и вечные неудобства.

ufaclub 26.10.2022 21:23

Цитата:

Сообщение от рони (Сообщение 548597)
change


спасибо, так просто оказалось. я уже тут час всякие условия и проверки пишу с задержками.... :lol: вообще не туда понесло.

voraa 27.10.2022 10:24

Я вообще не понимаю, как это работает.
Как там можно ввести числа от 2 до 9. Они же сразу на 12 заменятся.
Там же же сравниваются строки.


Часовой пояс GMT +3, время: 04:04.