| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > jquery замена value в input |
| Автор: maxipub 8.12.2015, 17:58 |
| Добрый день еще раз! Ребята, итак есть input-ы для ввода чисел. По умолчанию дробная часть отделяется точкой, но многие любят использовать запятую. В любом случае это все обрабатывается на уровне приема значений (JavaScript скриптами для их обработки, PHP и т.д.), но для красоты хотелось бы "на лету" менять запятые на точки и в самих input-ах. Отслеживаю oninput, проверяю $(this).val().indexOf(','), и если запятая имеется, делаю $(this).val($(this).val().replace(',', '.')); Все ок, но есть один некрасивый момент. Например, пользователь ввел "100". И потом ставит курсор после первого нуля чтобы поставить точку и получить "10.0". И если вместо точки он введен запятую, она корректно заменится на точку, но курсор будет перемещен в самый конец строки. Можно ли как-то на лету делать такую замену с сохранением позиции курсора в троке? Спасибо! |
| Автор: ksnk 8.12.2015, 18:30 | ||
| Использовал такой вот плагин для jQuery. В комментариях - описание работы var x = $(this).carret() - позиция курсора, перед изменением значения ее нужно сохранить, после изменения - восстановить $(this).carret(x); Работает только с текстовыми полями - input/textarea.
|
| Автор: maxipub 10.12.2015, 11:53 |
| ksnk, спасибо большое за помощь! Порылся еще немного в теме. Решил в форме ничего не заменять, столько кода из-за такой мелочи... |
| Автор: maxipub 10.12.2015, 12:49 |
| В принципе, немного поэксперементировав, не такой уж и плохой плагин... Только не $(this).carret(x);, а $(this).carret('set', x); Спасибо еще раз! |
| Автор: ksnk 12.12.2015, 20:51 |
| Да, действительно, ошибка была. Так, оказывается, не проверял еще. https://jsfiddle.net/40zeuszt/1/ |