Отключить вставку текста в HTML-форму - PullRequest
88 голосов
/ 04 августа 2009

Есть ли способ с помощью JavaScript отключить возможность вставки текста в текстовое поле в форме HTML?

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

Возможно, я не совсем понял свой вопрос, но я не пытаюсь помешать людям копировать (или перетаскивать выделение) текст в своем браузере. Я просто хочу остановить их от вставки ввода в текстовое поле, чтобы минимизировать ошибку пользователя.

Возможно, вместо использования этого "хака", вы можете предложить другое решение основной проблемы, которую я пытаюсь решить здесь? Я провел менее полдюжины пользовательских тестов, и это уже происходило дважды. Моя аудитория не имеет высокого уровня владения компьютером.

Ответы [ 22 ]

0 голосов
/ 17 декабря 2010

Я сделал нечто подобное для http://bookmarkchamp.com - там я хотел определить, когда пользователь скопировал что-то в поле HTML. Реализация, которую я придумал, состояла в том, чтобы постоянно проверять поле, чтобы увидеть, не появилось ли там вдруг много текста.

Другими словами: если раньше миллисекунду назад не было текста, а теперь более 5 символов ... то пользователь, вероятно, вставил что-то в поле.

Если вы хотите, чтобы это работало в Bookmarkchamp (вам необходимо зарегистрироваться), вставьте URL-адрес в поле URL-адреса (или перетащите туда URL-адрес).

0 голосов
/ 15 сентября 2013

Я бы решил вопрос подтверждения адреса электронной почты следующим образом:

  1. Прежде чем пройти основной процесс, скажем, при регистрации пользователя, сначала попросите его ввести адрес электронной почты.
  2. Создайте уникальный код и отправьте его на этот адрес электронной почты.
  3. Если пользователь ввел правильный адрес электронной почты, он получит код.
  4. Пользователь должен ввести этот код вместе со своим адресом электронной почты и другой необходимой информацией, чтобы он мог завершить регистрацию. - Обратите внимание, что если в этот раз они введут неправильный адрес электронной почты (или неправильный код), поскольку он не будет совпадать с кодом, регистрация не будет выполнена, и пользователь будет сразу же проинформирован.
  5. Если адрес электронной почты, код и другая информация о регистрации были введены правильно, регистрация завершена, и пользователь может сразу начать использовать систему. - не нужно отвечать на любой другой адрес электронной почты, чтобы активировать свою учетную запись

Для повышения безопасности код должен иметь ограниченный срок действия, и его следует разрешать только один раз в процессе регистрации. Кроме того, для предотвращения каких-либо вредоносных программ-роботов на первом этапе лучше сопровождать капчу или аналогичный механизм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...