Валидация формы при помощи replace

196
09 марта 2018, 16:40

Удаляю из поля input ненужные символы так:

$(document).on('input','#num',function() { 
this.value = this.value.replace(/[^\d\.]/ig,''); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<input id="num">

Но так любое изменение в поле сбрасывает курсор в конец. Здесь можно чего-нибудь придумать или нужен другой подход?

Answer 1

Вы же вставляете новое значение, вот и перебрасывает.
Можно заморочится с определением позиции курсора, бубен достать, но правильнее всего просто определять левый символ при вводе и не давать его вводить:

$(document).on('keydown','#num',function(e) { 
  // Проверка на длину необходима для того, чтобы допускать действие спец. клавиш типа стрелок 
  if(e.key.length === 1 && /\D/.test(e.key)) return false; 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<input id="num">

READ ALSO
Ajax data возвращает весь html

Ajax data возвращает весь html

Сделал Ajax запрос после отправки и проверки на валидность инпутов

220
Не работает скрипт транслита

Не работает скрипт транслита

Добрый день) Знаю что это убогий пример (пишется как тренировка, посмотреть как работает) , но если будет корректно работать этот фрагмент,...

236
PHP PDO защита от sql injection

PHP PDO защита от sql injection

Здравствуйте! Есть такой код:

248
получение данных из базы данных

получение данных из базы данных

Как можно вывести только конкретную информацию о пользователеНапример Здравствуйте: <имя>

227