我有一个文本字段,我想限制向此文本字段显示负值,如果我得到负值,那么我不想在文本框中显示该值。但我的ng模型应包含该负值。
function LoginController($scope) {
$scope.number = -10;
$scope.number1 = -20;
$scope.number2 = -30;
}
<div ng-app ng-controller="LoginController">
<input ng-model="number"></input>
<input ng-model="number1"></input>
<input ng-model="number2"></input>
<input type="submit" ng-click="login()" value="Login"></input>
</div>
答案 0 :(得分:1)
<html>
<body>
<input type="text" onkeypress="OnlyNumber(this);"></input>
</body>
<script>
function OnlyNumber(i)
{
if(i.value.length>0)
{
i.value = i.value.replace(/[^\d]+/g, '');
}
}
</script>
</html>
使用此javascript代码。
我使用了onkeypress
javascript属性
您可以使用ng-keyup
angularjs指令
答案 1 :(得分:0)
根本不需要使用javascript。 转换
<input ng-model="number"></input>
到
<input type="number" min="0" ng-model="number"></input>
您需要的每个input
代码。
P.S:当onLoad和复制/粘贴是操作时,这不会执行 not-showing ,但会发出警告,表示该值不符合输入条件。
答案 2 :(得分:0)
function cleanInput(selector){
var elements = document.querySelectorAll(selector);
for(element in elements){
if(parseInt(element.value) < 0 ) {element.value = '';}
}
}
如果这是您的HTML:
<div id="clean-div" ng-app ng-controller="LoginController">
<input ng-model="number"></input>
<input ng-model="number1"></input>
<input ng-model="number2"></input>
<input type="submit" ng-click="login()" value="Login"></input>
然后,
cleanInput('#clean-div input');
编辑:使用HTML解决方案仅适用于较新的浏览器。如果您不在乎,请继续输入type = number解决方案。需要其他JavaScript。
答案 3 :(得分:0)
//try using conditional expression like this.
function LoginController($scope) {
let num=-10
$scope.number = num<0?'':num;
}
答案 4 :(得分:0)
<form action="" method="post">
<input type="number" id="numval" min="0" />
</form>
// Select your input element.
var number = document.getElementById('numval');
// Listener for input element.
number.onkeydown = function(e) {
if(!((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| e.keyCode == 8)) {
return false;
}
}
95,&lt; 106对应于Numpad 0到9; 47,&lt; 58对应于Number Row上的0到9;和8是Backspace。
答案 5 :(得分:0)
HTML :
<div ng-app ng-controller="LoginController">
<input ng-model="number" ng-change="onNumberChange('number')">
</input>
<input ng-model="number1" ng-change="onNumberChange('number1')">
</input>
<input ng-model="number2" ng-change="onNumberChange('number2')">
</input>
<input type="submit" ng-click="login()" value="Login"></input>
</div>
Controller :
function LoginController($scope) {
$scope.number = -10;
$scope.number1 = -20;
$scope.number2 = -30;
$scope.onNumberChange = function(valueName){
var number = parseInt($scope[valueName]);
if(number < 0){
$scope[valueName] = 0
}
}
}