Отключить кнопку в angularjs с помощью ng-pattern - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь отключить кнопку, когда текстовое поле не совпадает с шаблоном. Я пробовал ниже, но кнопка отключена, только когда в текстовой области ничего не напечатано.

Любая помощь?

Шаблон: не должен допускать . , ' " :

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body ng-app="">

<form name="myForm">

<textarea rows="5" cols="50" name="notes" ng-model="notes" id="notes" ng-pattern="/^[a-zA-Z0-9.,:&apos;&quot;]*$/" required
></textarea>

<span ng-show="myForm.notes.$error.required">Notes is required</span>
<span ng-show="myForm.notes.$error.pattern">Invalid Notes</span>
<button type="button" ng-disabled="myForm.$invalid">Click me</button>
</form>

</body>
</html>

1 Ответ

0 голосов
/ 18 ноября 2018

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

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

/ ^ [^., ': "] * $ /

Конечно, при кодировании в HTML вам нужно экранировать кавычку.

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>  
<body ng-app="">

<form name="myForm">

<textarea rows="5" cols="50" name="notes" ng-model="notes" id="notes" ng-pattern="/^[^.,':&quot;]*$/" required
></textarea>

<span ng-show="myForm.notes.$error.required">Notes is required</span>
<span ng-show="myForm.notes.$error.pattern">Invalid Notes</span>
<button type="button" ng-disabled="myForm.$invalid">Click me</button>
</form>

</body>
</html>
...