Angular JS 中的验证问题
Issue with validation in Angular JS
我有一个 Angular JS 项目。它实现了基于 bootstrap 标记的表单(只有 css,没有 js)。在表单中有一个电话字段,我需要对其进行验证。
验证规则:
Phone 只能包含数字、空格和“+”字符
Phone 必须至少有 11 个数字和最多 15 个数字
这是代码(为了验证我不使用任何 js 脚本,只使用 angular 标记):
<div class="row">
<div class="col-sm-12">
<input id="Text5"
name="telephone"
placeholder="Enter phone number (only digits or spaces)"
type="text"
ng-model="ManageDetailsCtrl.ManageDetails.Phone"
class="form-control"
style="width: 100%;"
ng-minlength=11
ng-maxlength=15
ng-pattern="^\+*\d{11,15}$"
required>
</div>
</div>
<div class="error" ng-show="form.telephone.$dirty && form.telephone.$invalid">
<div class="error" ng-show="form.telephone.$error.required">
Phone number is required.
</div>
<div class="error" ng-show="form.telephone.$error.minlength">
Phone number ruquired to be at least 11 characters
</div>
<div class="error" ng-show="form.telephone.$error.maxlength">
Phone number cannot be longer than 15 characters
</div>
</div>
问题如下:
当我输入数字时,它不会影响最小和最大数字。我总是有错误:"Phone number ruquired to be at least 11 characters"
不知道如何绑定正则表达式。因为理论上已经实现了 3 种类型的验证,所以我可能会打印:+1234 56789 - 这里有 11 个字符。也许我需要改变smth,但我不知道。
有人帮我吗?
您需要添加ng-class="{'has-error'}"
笨蛋:HERE
示例:
<div class="form-group" ng-class="{'has-error': form.telephone.$dirty && form.telephone.$invalid}">
<input id="Text5"
name="telephone"
placeholder="Enter phone number (only digits or spaces)"
type="text"
ng-model="ManageDetailsCtrl.ManageDetails.Phone"
class="form-control"
style="width: 100%;"
ng-minlength=11
ng-maxlength=15
//ng-pattern="^\+*\d{11,15}$"
required>
<div ng-show="form.telephone.$dirty && form.telephone.$invalid">
<span ng-show="form.telephone.$error.required" class="help-block">can't be blank</span>
<span ng-show="form.telephone.$error.minlength" class="help-block"> is too short (min 11 characters)</span>
<span ng-show="form.telephone.$error.maxlength" class="help-block"> is too long (max 15 characters)</span>
</div>
</div>
我有一个 Angular JS 项目。它实现了基于 bootstrap 标记的表单(只有 css,没有 js)。在表单中有一个电话字段,我需要对其进行验证。
验证规则:
Phone 只能包含数字、空格和“+”字符
Phone 必须至少有 11 个数字和最多 15 个数字
这是代码(为了验证我不使用任何 js 脚本,只使用 angular 标记):
<div class="row">
<div class="col-sm-12">
<input id="Text5"
name="telephone"
placeholder="Enter phone number (only digits or spaces)"
type="text"
ng-model="ManageDetailsCtrl.ManageDetails.Phone"
class="form-control"
style="width: 100%;"
ng-minlength=11
ng-maxlength=15
ng-pattern="^\+*\d{11,15}$"
required>
</div>
</div>
<div class="error" ng-show="form.telephone.$dirty && form.telephone.$invalid">
<div class="error" ng-show="form.telephone.$error.required">
Phone number is required.
</div>
<div class="error" ng-show="form.telephone.$error.minlength">
Phone number ruquired to be at least 11 characters
</div>
<div class="error" ng-show="form.telephone.$error.maxlength">
Phone number cannot be longer than 15 characters
</div>
</div>
问题如下:
当我输入数字时,它不会影响最小和最大数字。我总是有错误:"Phone number ruquired to be at least 11 characters"
不知道如何绑定正则表达式。因为理论上已经实现了 3 种类型的验证,所以我可能会打印:+1234 56789 - 这里有 11 个字符。也许我需要改变smth,但我不知道。
有人帮我吗?
您需要添加ng-class="{'has-error'}"
笨蛋:HERE
示例:
<div class="form-group" ng-class="{'has-error': form.telephone.$dirty && form.telephone.$invalid}">
<input id="Text5"
name="telephone"
placeholder="Enter phone number (only digits or spaces)"
type="text"
ng-model="ManageDetailsCtrl.ManageDetails.Phone"
class="form-control"
style="width: 100%;"
ng-minlength=11
ng-maxlength=15
//ng-pattern="^\+*\d{11,15}$"
required>
<div ng-show="form.telephone.$dirty && form.telephone.$invalid">
<span ng-show="form.telephone.$error.required" class="help-block">can't be blank</span>
<span ng-show="form.telephone.$error.minlength" class="help-block"> is too short (min 11 characters)</span>
<span ng-show="form.telephone.$error.maxlength" class="help-block"> is too long (max 15 characters)</span>
</div>
</div>