Pull to refresh

Comments 30

Копеек и не требовалось
в вашем плагине при клике в середину курсор переходит в конец текста
А еще попробуйте вводить девятки, пока не появится число 10 000 000 000 000 000
Запрещать вставлять в поле для ввода или копировать из него, это очень плохо, не делайте так. Сейчас вся работа с выделением смотрится глюком.
На следующей итерации менеджеры скажут, что в поле можно ввести любые символы через Alt+Numpad.
Допустим, вы это поправите как-нибудь.
Но тогда они скажут, что пользователь может открыть страницу в отладчике, и там вписать в поле что угодно.

true story
Полностью согласен, но мой плагин реализовывает/запрещает те функции которые доступны любому пользователю, даже ничего не смыслящему в html.
Мне немного ломает мозг движение текста, особенно при стирании символов из середины.
После добавления
style="text-align: right;"
к инпуту стало гораздо приятней.
Вообщем то да — вы совершенно правы. В реализации на нашем сайте в стилях это прописано.
Тоже ломало мозг, когда пытались делать также. Пришли к тому, что форматирование применяется при потере фокуса и снимается при получении.
Так и возможности форматирования неограничены, например можно приклеить имя валюты, выбранной в дропдауне страницей раньше.
Вы своим чудо-велосипедом убили возможность использования буфера обмена в поле ввода. Пожалуйста, не делайте так. Ни в коем случае не урезайте нативную функциональность ради своих плагинов.
Используется это в аукционах — цена постоянно меняется, и следовательно откуда то копировать и вставлять долго.
Да и если просто цена (например в интернет магазине) я не могу представить ни одного случая когда проще скопировать и вставить, нежели ввести самому.
Не нужно ничего представлять за пользователей, они сами разберутся что как и когда им удобнее использовать. Просто возьмите за правило не трогать нативную функциональность, вы никогда не сделаете так как надо во всех браузерах :)
Странно работает ваш скрипт, если честно.
Открыл я ваш пример.
Ввел число. Захотел я его скопировать. Выделил. Зажимаю command и, опа, то, что было выделено пропало.
Странный функционал, где бы он не применялся. Я бы подумал, что сайт просто глючит.
Сижу я с мака.
До мака в тестировании так и не дошли. по ctrl+V отлично копирует.
Ctrl + C разумеется ;)
Вы забыли про event.metaKey — Cmd (вместо Ctrl) на MacOS
Вы правы, спасибо.
Обновил.
Вопрос с cmd немного сложнее, чем простое использование event.metaKey. Где-то с год назад искал коды для cmd и наткнулся на ответ на stackoverflow с такими кодами для разных браузеров:

Firefox: 224
Opera: 17
WebKit (Safari/Chrome): 91 (Left Apple) or 93 (Right Apple)

В своём проекте ловлю коды 17, 157, 224, 91, 93, 18, но, к сожалению, уже не могу вспомнить, откуда взялись 157 и 18.
Может вам копейки и не нужны но я бы сделал что б была возможность их использовать без этого резко уменьшается возможность применения без допиливания
На Маке с шифтом заглавные буквы (и все остальное тоже) вводятся. Притом, если ввести заглавные буквы и снять фокус с поля – они там и остаются. А если после заглавных ввести цифру – они исчезают.
Есть один сервис приёма платежей, в котором сделали всё, чтобы пользователю было неудобно вводить номер карты: разделили на четыре инпута и запретили paste. Да ещё и добавили с полдюжины ненужных обязательных полей, которые каждый раз надо заполнять заново.
Это к тому, что не надо за пользователей решать, как им будет удобнее путём запрета почти всего, к чему они привыкли при редактировании. Поддерживаю то, что не надо блокировать paste и тем более contextmenu.
А вы не пробовали использовать какой-нибудь плагин масок ввода, динамически меняя маску в зависимости от количества символов, чтобы верно расставлять пробелы? Я сам не проверял, будет ли работать, просто это первое, что пришло в голову.
Может быть это не уложилось бы в ТЗ, но я бы просто рядом поставил большими цифрами отформатированную цену и не трогал бы поле ввода.
UFO just landed and posted this here
Тут не согласен. Если оперировать большими числами, например 1000000 — сразу и не скажешь сколько я ввел, придется считать нули или отсчитывать во время ввода, а так сразу понятно это 10 000 или 100 000
ИМХО, наиболее адекватное решение тут: github.com/filamentgroup/politespace
Конечно, немного не то, что у вас, но:
— вполне решает задачу (нам ведь нужно показать пользователю отформатированный ввод, верно?)
— не шокирует пользователя, не воюет с системой, не мешает работе с буфером обмена
Как уже писалось, разрядные числа лучше вводить справа налево, визуально меньше прыжков. Это правило действительно как для ввода в инпуте так и для вывода скажем в таблице.

Нативные вещи типа копи/паст ни в коем случае нельзя отбрасывать.

Ну и наконец, запятая/точка и пару чисел после нее в качестве копеек тоже должны быть.

Резюмируя, мне кажется много кода — толку ноль. Пара тройка регулярок справились бы лучше.
Мне кажется, лучше всего было бы не трогать вообще стандартный input, а позволять вводить что угодно и как угодно. Чтобы «глупый пользователь» не запутался, можно в крайнем случае выводить где-нибудь рядом hint, в котором цена будет уже отформатирована («вы ввели 10 135», или даже «вы ввели десять тысяч сто тридцать пять»). Тем более, что в будущем может понадобиться иметь возможность вводить дробные числа, показывать разделитель разрядов запятой, а разделитель дробной части точкой (или наоборот, в зависимости от региональных стандартов) и т.д.
Беда половины таких вот реализаций они совершенно не учитывают особенности языка.

для en-US 1,000,000.00
для ru-RU 1 000 000.00

Откройте настройки отображения дат и валют в вашей операционной системе и посмотрите, насколько много там разных нюансов.

p.s. я не спорю, с тем что задача не ставилась, но создавать не локализируемые приложения можно было 10 лет назад, до повальной глобализации.
Sign up to leave a comment.

Articles