[英]Restrict input type number
我很难将输入类型的数字限制为仅正数。 如该文章所述: HTML5:仅采用整数的数字输入类型? 我不是在寻找step =“ 1”的答案,因为它也允许用户键入{e。,}。
我正在使用在相关文章( 如何限制输入只接受数字? )上找到的指令,我刚刚在其中添加了一些控制台日志和toString():
当输入类型是文本时,它可以正常工作,但是当输入类型是数字,而我输入'e','或'。时,则永远不会调用它。
对我在这里想念的东西有任何想法吗? 我想使用输入type = number来启用箭头以使用角形材料选择一个值。
function restrictInput($mdDialog) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
function inputValue(value) {
console.log("hello ! :", value)
var val = value.toString();
console.log("goodbye ! : ", val)
if (val) {
var digits = val.replace(/[^0-9]/g, '');
console.log("digits :", digits)
console.log("val : ", val)
if (digits !== val) {
ctrl.$setViewValue(digits);
ctrl.$render();
}
return parseInt(digits, 10);
}
return undefined;
}
ctrl.$parsers.push(inputValue);
}
};
}
HTML是这样的:
<md-input-container flex class="md-input-has-placeholder">
<label>Années d'expérience stage inclus</label>
<input
type="number"
required
step="1"
restrict-input
min="0"
name="Expérience stage"
ng-model="model">
<div ng-messages="form['Expérience stage'].$error" md-auto-hide="false">
<div ng-message="required">Requis</div>
</div>
</md-input-container>
编辑
在这里使用getter setter(ng-model-options =“ {getterSetter:true}”)效果很好。
如果只需要将输入类型“数字”限制为仅接受整数,则无需使用指令。
<input type="number" ng-pattern="/^(0|[1-9][0-9]*)$/" >
您可以在应用程序中输入上述代码吗?
这只会接受数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.