为什么我的ng模式在名称文本框中允许特殊字符?这是视图文件:
<div ng-repeat="s in config.students">
<div class="form-group">
<label class="control-label col-lg-2"></label>
<div class="col-lg-5">
<input type="text" class="form-control" name="students[]" ng-trim="false" ng-model="class.students[$index]" required ng-pattern="/^[a-zA-Z]*$/">
</div>
<div class="col-md-5">
<button class="btn btn-danger btn-sm" ng-click="removeStudent($index)" type="button">X</button>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2"></label>
<div class="col-lg-4">
<button type="submit" class="btn btn-primary btn-grad btn-rect">Submit</button>
<a href ="<?php echo base_url();?>index.php/main/index" class="btn btn-default btn-grad btn-rect">Cancel</a>
</div>
</div>
仅ng-pattern
不会阻止用户在文本框中输入某些文本。如果要执行此操作,则需要在<input>
上使用自定义属性指令。
ng-pattern
旨在与AngularJS的表单验证结合使用,您可以使用它来隐藏/显示验证消息并在提交表单之前对其进行验证。
AngularJS表单验证需要表单中每个输入字段的唯一名称。
但是在您的情况下,您对 ng-repeat 中的所有输入字段使用相同的名称。因此,请使用$index更改输入以在每次迭代中为输入添加唯一名称
<input type="text" class="form-control" name="students{{$index}}" ng-trim="false" ng-model="class.students[$index]" required ng-pattern="/^[a-zA-Z]*$/">
这是普伦克。