@Somebodyyyy

Как при вводе определённых символов удалять их и выводить сообщение через alert?

В input требуется фильтрация определённых символов, нужно, чтобы они удаляли и выводилось сообщение с предупреждением, но главное, чтобы не удалять вся строка, а только введённый символ, как реализовать?

UPD Прошу прощения,что сразу не скинул код
$('#vin').keyup(,function() {
  	let vin = $(this).val();
    let result = vin.replace(/[,.-/QqIiOoAaА-Яа-яЁё]/g, function() {
    	alert("Здесь сообщение);
    	$("#vin").val("");
    });
    // if (vin.match(/[,.-/QqIiOoAaА-Яа-яЁё]/g)) {
    // 	//alert("Здесь сообщение");
    // 	let result = vin.replace(/[,.-/QqIiOoAaА-Яа-яЁё]/g, "");
    // }

    $("#checkVin").html(result);
 });


<input id="vin" type="text" name="vin" class="form-content__field-input form-content__field-input--twenty" maxlength="17">


Проблема в том,что оно либо если, убрать "$("#vin").val("");" возвращает undefined, если добавить return и засунуть туда replace, то ничего не происходит, закоментированный код - нашел в гугле, но тоже отказывается работать
  • Вопрос задан
  • 171 просмотр
Решения вопроса 2
@Lord_Dantes
Можно по вашему примеру, сохранить в переменную текущий вал потом сделать текст который написали и вывести его в алерт, а потом в val кинуть переменную с прошлым валом.
Ответ написан
Комментировать
@ivan386
$('#vin').change(e, function() { // меняем на change 
    let vin = $(this).val();
    let result; 
    if (vin.match(/[,./QqIiOoAaА-Яа-яЁё-]/g)) { // для того чтобы минус не обозначал диапазон пишем его в конце набора
     	alert("Здесь сообщение");
     	result = vin.replace(/[,./QqIiOoAaА-Яа-яЁё-]/g, "");
        $(this).val(result); // возвращаем в инпут правильный текст
   }
   else
         result = vin;

    $("#checkVin").html(result);
 });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы