[英]Can not validate the field properly using Angular.js
我需要根據用戶要求使用 AngularJS 正確驗證輸入字段。
我在下面提供我的代碼:
<div ng-class="{ 'myError': billdata.longitude.$touched && billdata.longitude.$invalid }">
<input type="text" name="longitude" id="longitude" class="form-control oditek-form" placeholder="Add Longitude coordinate" ng-model="longitude" ng-pattern="/^[0-9]+([,.][0-9]+)?$/" ng-keypress="clearField('businessno');">
</div>
<div class="help-block" ng-messages="billdata.longitude.$error" ng-if="billdata.longitude.$touched">
<p ng-message="pattern" style="color:#F00;">This field needs only number(e.g-0,1..9).</p>
</div>
這里的要求是用戶只能使用+
或-
輸入編號,例如-
ie-+123.45 or -095.4567
。 在當前情況下,不允許使用+
或-
只允許使用數字。
您需要在正則表達式中允許相應的符號
ng-pattern="/^(\+|-)?[0-9]+([,.][0-9]+)?$/"
ng-pattern="/^([+|-][[0-9]+([,.][0-9]{n,m}))]?$/";
嘗試使用這個只是用最小的小數位數替換 n 和 m,即在你的情況下是 0 和 m,允許的小數位數最高
您可以編寫自己的自定義驗證指令,如下所示。
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@*" data-semver="1.2.16" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app="app" ng-controller="HomeCtrl">
<div>
<form novalidate name="myForm">
Number: <input type="text" name="valText" ng-model="val" even-number />
</form>
</div>
<div>
<span style="color: red;" ng-show="myForm.valText.$error.evenNumber">Invalid value</span>
<br />
<br />
<button ng-click="setValue(22)">Change Value to 22</button>
<br />
<button ng-click="setValue(19)">Change Value to 19</button>
</div>
</body>
</html>
普朗克。
這個偶數指令,只允許偶數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.