工作中遇到的场景
好几个入参都需要进行这个特殊的设定————校验输入框不能输入非数字并且数字保留两位小数
并且不能输入空,这就要求我们在输入框失去焦点的时候需要做点什么,没错,我们需要blur函数
这是个列表,里面的每一个输入框都要满足这个要求
假设HTML代码如下:
<div ng-repeat="item in itemLists">
<input type="text"
ng-blur="blurTest('param1',$index)" ng-model="item.param1">
<input type="text"
ng-blur="blurTest('param2',$index)" ng-model="item.param2">
<input type="text"
ng-blur="blurTest('param3',$index)" ng-model="item.param3">
<input type="text"
ng-blur="blurTest('param4',$index)" ng-model="item.param4">
</div>
则为了实现此功能js代码如下:
$scope.numberFixdeTwo = function (value, index) {
var nameTest= '';
content = $scope.itemLists[index][value];
if (nameTest=== '' || isNaN(Number(nameTest)) || Number(nameTest) < 0) {
$scope.itemLists[index][value] = 0
} else {
$scope.itemLists[index][value] = Number(nameTest).toFixed(2);
}
}
实现了!
当然,实际工作中还涉及到总价的计算这是另外的函数处理逻辑了,这里不做过多叙述。