如何使用 ng-pattern
How to get use ng-pattern
我有一个简单的文本输入,其中我只想允许浮点数和整数(注意:jade)
input.form-control(type="text", ng-model='usd', ng-pattern="nums",ng-change='convert_to_btc()', placeholder="USD")
但是它不起作用,我总是可以在输入中插入任何字符(我需要做更多才能显示某些东西吗?例如,如果它不正确,则显示红色边框?或者应该只是那些字符甚至不能进去吗?)
该模式是正则表达式,因此不是字符串,所以应该没问题???
这是控制器:
app.controller("AppCtrl", function AppCtrl($scope, $http, $interval ) {
//lots of other stuff
$scope.nums = /^\-?\d+((\.|\,)\d+)?$/; //note no string, it's a regex
}
这是生成的HTML。这可能是问题所在吗?生成的HTML居然是字符串,不是正则!?
<input type="text" ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/" ng-change="convert_to_btc()" placeholder="USD" class="form-control ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-pattern">
我希望这就是你想要做的。
请看下面link
http://plnkr.co/edit/BGzLbQHy0ZtHYmom8xA3
<!DOCTYPE html>
<html ng-app="">
<head>
<script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.13/angular.js" data-semver="1.3.13">
</script>
<style>
.ng-invalid-pattern {
border:1px solid #f00;
}
</style>
</head>
<body>
<p>Hello</p>
<form name='myform'>
<input type="text" name='ip' ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/"
ng-change="convert_to_btc()" placeholder="USD"/>
<p ng-show='myform.ip.$invalid'>Error</p>
</form>
</body>
</html>
如果您试图阻止用户输入 character/letters 并且只允许他们在输入中输入数字,请将 <input type="text"
更改为 <input type="number"
这是 Angular 文档页面的 link 关于输入的 link 应该只允许数字:input[number]
我有一个简单的文本输入,其中我只想允许浮点数和整数(注意:jade)
input.form-control(type="text", ng-model='usd', ng-pattern="nums",ng-change='convert_to_btc()', placeholder="USD")
但是它不起作用,我总是可以在输入中插入任何字符(我需要做更多才能显示某些东西吗?例如,如果它不正确,则显示红色边框?或者应该只是那些字符甚至不能进去吗?) 该模式是正则表达式,因此不是字符串,所以应该没问题???
这是控制器:
app.controller("AppCtrl", function AppCtrl($scope, $http, $interval ) {
//lots of other stuff
$scope.nums = /^\-?\d+((\.|\,)\d+)?$/; //note no string, it's a regex
}
这是生成的HTML。这可能是问题所在吗?生成的HTML居然是字符串,不是正则!?
<input type="text" ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/" ng-change="convert_to_btc()" placeholder="USD" class="form-control ng-dirty ng-valid-parse ng-touched ng-invalid ng-invalid-pattern">
我希望这就是你想要做的。
请看下面link
http://plnkr.co/edit/BGzLbQHy0ZtHYmom8xA3
<!DOCTYPE html>
<html ng-app="">
<head>
<script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.13/angular.js" data-semver="1.3.13">
</script>
<style>
.ng-invalid-pattern {
border:1px solid #f00;
}
</style>
</head>
<body>
<p>Hello</p>
<form name='myform'>
<input type="text" name='ip' ng-model="usd" ng-pattern="/^\-?\d+((\.|\,)\d+)?$/"
ng-change="convert_to_btc()" placeholder="USD"/>
<p ng-show='myform.ip.$invalid'>Error</p>
</form>
</body>
</html>
如果您试图阻止用户输入 character/letters 并且只允许他们在输入中输入数字,请将 <input type="text"
更改为 <input type="number"
这是 Angular 文档页面的 link 关于输入的 link 应该只允许数字:input[number]