HTML - Использование атрибута шаблона - PullRequest
0 голосов
/ 07 марта 2019

В html-форме мне нужна текстовая область, которая допускает любой тип текста: цифры, символы, символы новой строки или буквы, включая буквы иврита. Единственные два правила:

  1. Входные данные должны содержать строку: "{ser}"
  2. Ввод должен запрещать любое использование "{" или "}", за исключением приведенной выше строки

Я пробовал это:

<form action="#">
...
  <textarea pattern="[^\{\}]*\{ser\}[^\{\}]*" required>
האם אתה נמצא בשבת הקרובה? אם כן נא השב {ser} + שם מלא
  </textarea>
...
  <input type="submit" />
...
                    </form>

Но по какой-то причине он также позволяет отправлять тексты, которые не соответствуют правилам. Буду признателен за вашу помощь.

1 Ответ

0 голосов
/ 07 марта 2019

Вы не можете использовать атрибут pattern в текстовых областях, см. Документацию .

maxlength указывает максимальное количество символов, которое может содержать.Вы также можете установить минимальную длину, которая считается допустимой, используя атрибут minlength, и указать, что объект не будет отправлять (и будет недействительным), если он пуст, с использованием обязательного атрибута.Это обеспечивает простую проверку, которая является более простой, чем другие элементы формы (например, , вы не можете предоставить определенные регулярные выражения для проверки значения с использованием атрибута pattern, как вы можете с помощью элемента input ).

Может быть, реализовать сопоставление регулярных выражений с помощью javascript?

function validateTextarea(text) {
  var re = /ser/g;
  var result = text.match(re);
  if(result != null && result.length > 0)
    // Do something
}

Тогда, вероятно, лучший способ - проверить функцию в onsubmit атрибуте формы.

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