我在AngularJS中使用ngChange来触发一个自定义函数,该函数将删除用户添加到输入的任何字母.
<input type="text" name="inputName" data-ng-change="numbersOnly()"/>
Run Code Online (Sandbox Code Playgroud)
问题是我需要定位触发的输入,numbersOnly()以便我可以删除输入的字母.我在Google上看了很长时间,并且无法找到任何与此有关的内容.
我能做什么?
我必须为IE8编写一些代码.我有一个ng-repeat创建一个填充的表:
<input production-qty type="text" class="input-mini" maxlength="3" ng-model="day.qtyA" ui-event="{ blur : 'updateProduction(day)' }" ng-disabled="day.type=='H'">
Run Code Online (Sandbox Code Playgroud)
IE8不会做type = number
我想要一个指令,它将忽略该输入字段上不是数字键的键击....即.... 0 - 9
我不想让用户键入abc并污染模型,然后告诉他们值无效.我宁愿不让他们输入任何首先无效的数据.
我看到了这个解决方案http://jsfiddle.net/gronky/GnTDJ/并且它有效.也就是说,当您输入25时,它将被推回模型为0.25
HTML:
<script type="text/javascript" ng:autobind
src="http://code.angularjs.org/0.9.17/angular-0.9.17.js"></script>
<script>
function Main() {
this.var = '1.0000';
}
</script>
<div ng:controller="Main">
<input type="text" name="var" ng:format="percent">
<pre>var = {{var|json}}</pre>
</div>?
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
angular.formatter('percent', {
parse: function(value) {
var m = value.match(/^(\d+)\/(\d+)/);
if (m != null)
return angular.filter.number(parseInt(m[1])/parseInt(m[2]), 2);
return angular.filter.number(parseFloat(value)/100, 2);
},
format: function(value) {
return angular.filter.number(parseFloat(value)*100, 0);
},
});
?
Run Code Online (Sandbox Code Playgroud)
我试着让它在最新的AngularJS上运行,它不再工作了虽然http://jsfiddle.net/TrJcB/也就是说,当你输入25时,它也被推回25,它也没有推动正确的0.25对模型的价值.
或者可能已经有百分比的内置格式化程序?我也想要货币格式化程序,或者逗号分隔数字.
看看http://jsfiddle.net/2NJ7y/3/(AngularJS 1.0.1的版本)上的示例.有一个简单的应用程序,正在等待输入幸运数字.如果数字等于7,我将幸运数字重置为空.如果我多次输入数字7,有时/随机的幸运数字会保留在输入字段中.为什么?这种行为如何解决?谢谢.
我有一个输入密码字段.我希望能够警告用户他们的密码中没有任何空白区域.我发现的麻烦是我无法将尾随空格传递到范围以便检测它并警告用户他们不能这样做.
请参阅我的plunkr示例:LINK
如果输入输入字段,范围将返回密码的字符数,如果在密码末尾添加空格,则范围将不会报告正确的字符串长度,因为它显然会修剪任何尾随空格,这意味着我无法识别用户是否输入任何空格.因此,当用户添加尾随空格时,输入密码字段将显示当范围仅报告没有任何尾随空格的字符长度时添加了额外字符.
我想在用户在文本字段中输入无效输入时显示错误消息.
现在我正在使用:
Pin:<input type="text" class="form-control input-sm" ng-pattern="numOnlyRegex" name="pin" ng-model="pin" required placeholder="Pin"/>
<span style="color:red" ng-show="myForm.pin.$invalid">Only number are allowed</span>
<input type="Submit" class="form-control btn btn-success" ng-disabled="myForm.$invalid" value="Submit" />
Run Code Online (Sandbox Code Playgroud)
控制器:
<script>
angular.module('myApp', []).controller("numOnlyRegex", function ($scope)
{
$scope.numOnlyRegex = /^\d+$/;
});
</script>
Run Code Online (Sandbox Code Playgroud)
但我尝试的上述方式在输入文本字段下方显示静态消息.我想要的是当用户输入字母而不是数字时,它应该显示错误消息,如"只允许数字",否则它不应显示任何错误消息.
ng-show 当输入为空时,方法显示静态消息,但我只想在出现错误时显示错误(更真实的方式)