|
Модераторы: Sardar, Aliance |
|
magelan |
|
|||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
Столкнулся с проблемой - не дать пользователю вводить неправильные символы, либо перекодировать на лету, невзирая на выбор языка.
Первый подход с RegExp дал неутешительные результаты, современные браузеры на быстрых машинах проглатывают события, в результате не весь набор пользователя правильно прилетает. RegExp возможно использовать, если кешировать ввод, а регулярку применять время от времени. Однако выяснилось, что при работе с массивами, все браузеры успевают. Как не печально, нормального решения так и не нашел, хотя проблема казалось бы на поверхности. Привожу рабочий пример, может кому-то будет полезно, оформлять "по модному" не стал, чтобы не запутывать идею.
Это сообщение отредактировал(а) magelan - 22.5.2012, 11:28 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Если пользоваться jQuery, то e.which присутствует везде. Библиотека дополняет событие полями, если они отсутствуют.
А зачем нужно пользоваться selection'ами? Для ускорения фильтрации? Ну и традиционно - никак не защищается cut&paste вставка - самое то, при редактировании блондинками P.S. К тому-же как-то не понимаю надобность контроля за каждым символом. Контроль в конце ввода или по потере фокуса - самое правильное, imho... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
||||
|
||||
magelan |
|
|||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
В таких особенностях jQuery как which пока плаваю, за инфу спасибо. ИЕ приблизительно в 10 раз тормознее конкурентов в скриптах, поэтому да селекты, для ускорения. На внешнее воздествие задачи нет, т.к. на этих полях еще работает валидация. ага жесть. В обычной жизни я тоже не очень понимал нафига, но задача вводить мультиязычную форму имя/фамилия по русски имя/фамилия по английски... а тут такая штучка, помогает, реально. |
|||
|
||||
magelan |
|
|||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
Благодарю. Хотя скрипты там достаточно древние - хром, например, на document.all проверку пройдет. Для того, чтобы отловить копирование, дропы, и все такое, можно использовать плагинчик. Я его пробывал он подгреб все браузеры кроме 9го IE на виндоуз фоне(но это экзотика). Событие от него запаздывает при быстром вводе, для защиты от извне - подойдет, для моей задачи - не очень. Это сообщение отредактировал(а) magelan - 22.5.2012, 11:22 |
|||
|
||||
Aliance |
|
|||
I ♥ <script> Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
document.all там используется в единственном месте, которое завязано на описываемой там задачи с tinyMCE, реализация которой конкретно Вам не нужна как я понимаю. Ссылку дал скорее для того чтобы показать какие ситуации нужно обрабатывать и какие события они вызывают. |
|||
|
||||
magelan |
|
||||||
потерял xPath Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 2 Всего: 16 |
Еще раз вам говорю, код древний и писан в плохом стиле. Зачем делить браузеры по половой принадлежности, если без этого можно обойтись? например, зачем писать:
Вы мне хотели рассказать этой статьей про события input, dragdrop, keyup, onpropertychange и DOMCharacterDataModified? Или как? Вы думаете я не знаю, как проверить не положили ли в input что-то из буфера обмена? Вы не смотрели код того элегантного плагина, который я вам привел в ответ? |
||||||
|
|||||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |