使用ng-pattern禁用angularjs中的按钮

时间:2018-11-18 16:58:20

标签: javascript html angularjs regex ng-pattern

当文本区域与模式不匹配时,我正在尝试禁用按钮。我在下面尝试过,但是只有在文本区域中没有键入任何内容时,按钮才会被禁用。

有帮助吗?

模式:不应允许. , ' " :

<!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 :(得分:1)

您的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>