当文本区域与模式不匹配时,我正在尝试禁用按钮。我在下面尝试过,但是只有在文本区域中没有键入任何内容时,按钮才会被禁用。
有帮助吗?
模式:不应允许. , ' " :
<!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.,:'"]*$/" 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>
答案 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="/^[^.,':"]*$/" 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>