2016-06-07 91 views
1

我有以下代码。允许空值 - 输入类型编号

<input ng-keypress="onlyNumbers($event)" min="0" type="number" step="1" ng-pattern="/^[0-9]{1,8}$/" ng-model="... > 

现在它只接受数值。我也希望接受空值。由于数据库中存在空值,因此我希望它能反映在UI中。目前我得到[Object] [Object]为空值的输入。

$scope.onlyNumbers = function(event){ 
    var keys = { 
    'up': 38, 
    // Other key codes 
    ... 
    '9':57 
    }; 

    for(var index in keys) { 
    if (!keys.hasOwnProperty(index)) continue; 
    if (event.charCode==keys[index]||event.keyCode==keys[index]) { 
     return; //default event 
    } 
    } 

    event.preventDefault(); 
}; 

任何人都可以让我知道如何使它工作?

回答

3

如果您删除了min属性并修改了ng-pattern以检查空输入,该怎么办?

<input ng-keypress="onlyNumbers($event)" type="number" step="1" ng-pattern="/^[0-9]{1,8}$|^$/" ng-model="... > 
+0

wat是这里的空输入ng模式吗? – Patrick

+1

添加'|^$'将为正则表达式添加第二个匹配的可能性,其中'^ $'基本上是在匹配开头的匹配,紧跟在行尾,当然'|'是只是“或”。 – mikesigs

+0

我会试试这个代码并更新它是否工作。感谢您的投入n解释 – Patrick