如何在文本框中验证 angularjs



为什么我的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]*$/">

这是普伦克

最新更新