2015-08-20 4 views
0

В HTML input типа text Я хотел бы указать добавление или удаление определенных символов в их точном местоположении.Идентификация удаленных символов в строке

E.g. предопределенное значение ввода текста - строка aa. Пользователь манипулирует строкой, используя все виды редактирования - удаляя клавиши Backspace и Delete, выделяет текст и удаляет его \ заменяет другим текстом. Конечным результатом манипуляции является строка a.

Я хотел бы знать, если:

  • первый a был удален
  • последний a был удален
  • обоих a-х были удалены, и новый a характер был добавлен

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

Я могу использовать всевозможные инструменты и библиотеки Javascript для использования в браузере.

+0

Имеет ли значение, что 'a' было удалено? – Tushar

+0

для меня, да:] – agoldis

ответ

0

Почему бы не использовать onFocus/onChange/onKeyUp на входном узле, а затем отслеживать все нажатые кнопки и положение каретки? Вы должны выяснить остальное самостоятельно :)

Просто сохраните исходное значение в var и посмотрите, какие изменения в нем выполняются и отслеживают их. Когда вход теряет фокус или кнопки больше не нажаты, вы можете завершить функцию/отключить его. Вот и все.

Здесь есть некоторые полезные ссылки о том, как отслеживать ключ и каретку, но я уверен, что есть Планта больше:

Set keyboard caret position in html textbox

http://snipplr.com/view.php?codeview&id=5144

JavaScript multiple keys pressed at once

Wdyt?

+0

Я рассматривал этот подход, но я слишком ленив, чтобы его реализовать. давайте посмотрим, может быть, у кого-то уже есть реализация:] – agoldis

+0

Если вы ищете решение OOTB, то, возможно, вам стоит подумать об использовании чего-то более мощного, чем текстовый ввод, например, ckeditor. Например, loopindex: https://github.com/loopindex/ckeditor-track-changes – Proqb

Смежные вопросы