Подтвердить что ты не робот

Самый простой способ маскировать символы в текстовом вводе HTML (5)

Есть ли у HTML5 какое-либо маскирование текстового поля или мне еще нужно уловить onkeydown и т.д.?

jbabey прав - "маскировка", как в блокировании некоторых незаконных символов, а не скрытие того, что напечатано.

Лучший (как простейший и самый надежный) способ, которым я нашел, - это ловушка onkeyup, а затем просто запустите замену регулярного выражения на значение текстового поля, удалив любые незаконные символы.

Это имеет несколько преимуществ:

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

Но его основным недостатком является то, что он кратко показывает типизированные символы (символы), прежде чем их удалять, что делает его очень грубым и непрофессиональным.

4b9b3361

Ответ 1

Посмотрите новый Типы ввода HTML5. Эти инструкции позволяют браузеру выполнять фильтрацию данных на стороне клиента, но реализация является неполной в разных браузерах. Атрибут pattern будет выполнять фильтрацию в стиле регулярных выражений, но, опять же, браузеры не полностью (или вообще не поддерживают) его.

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

Ответ 2

Да, в соответствии с черновиками HTML5 вы можете использовать атрибут pattern, чтобы указать допустимый ввод, используя регулярное выражение. Для некоторых типов данных вы можете использовать специальные поля ввода, такие как <input type=email>. Но эти функции по-прежнему широко не имеют поддержки или имеют качественно плохую поддержку.

Ответ 3

  • Базовая проверка может быть выполнена путем выбора атрибута типа входных элементов. Например: <input type="email" /> <input type="URL" /> <input type="number" />

  • используя атрибут шаблон, например:   <input type="text" pattern="[1-4]{5}" />

  • обязательный атрибут  <input type="text" required />

  • MaxLength: <input type="text" maxlength="20" />

  • min и max: <input type="number" min="1" max="4" />

Ответ 4

Немного поздно, но полезный плагин, который фактически будет использовать маску, чтобы дать немного больше ограничений на ввод пользователя.

<div class="col-sm-3 col-md-6 col-lg-4">
  <div class="form-group">
     <label for="addPhone">Phone Number *</label>
      <input id="addPhone" name="addPhone" type="text" class="form-control 
       required" data-mask="(999) 999-9999"placeholder>
    <span class="help-block">(999) 999-9999</span>
  </div>
</div>

 <!-- Input Mask -->
 <script src="js/plugins/jasny/jasny-bootstrap.min.js"></script>

введите описание изображения здесь

Дополнительная информация о плагине http://www.jasny.net/bootstrap/javascript/#inputmask