我無法將輸入類型編號限制爲正數。正如那篇文章中所述:HTML5: number input type that takes only integers?我是而不是尋找step =「1」的答案,因爲它允許用戶鍵入{e。}。限制輸入類型編號
我使用的是指令我在相關的職位發現(How do I restrict an input to only accept numbers?),而我只是增加了一些控制檯日誌和一個toString():
它的正常工作,當輸入類型是文本,但它是當輸入類型是數字時我從來沒有打過電話,而且輸入'e'','或'。'。
任何想法,我在這裏失蹤?我想使用輸入類型=數字來啓用箭頭以使用角度材質選擇一個值。
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-模型選項= 「{getterSetter:真正}」)工作在這裏完美。
爲$ scope.model寫一個手錶並限制輸入並將其替換爲 – M14
''是數字值的開始。那麼你只需要檢查它不是一封信。另見http://stackoverflow.com/questions/7372067/is-there-any-way-to-prevent-input-type-number-getting-negative-values – Maxime