在设置值之前验证angularjs模型

时间:2014-06-02 14:04:06

标签: javascript angularjs

我有一个输入字段,只允许正数。

<input id="charge-hours" type="text" class="charge-position-hours-edit" placeholder="0" ng-model="charge.hours">

如何控制ng-model的设置。

我想在范围中设置的值之前写一个前置条件。像

这样的东西
$scope.precondition = function (value) {
        if (!isNan(value)) {
          $scope.value=value;
        }else{
          //do nothing
        }
      }

这在javascript / angularjs中是否可行?在jave中会有一个setter。

修改

我的问题不够明确。

我真的希望只有正数才能在输入字段中输入,并且只有正数才能绑定到angularjs的ng模型。

如果我使用ng更改,有没有办法保存oldValue?然后我可能会写类似

的内容
if (condition===true) //ok 
else $scope.value=oldValue;

2 个答案:

答案 0 :(得分:0)

如果您的问题是确保该值为整数且为正数,则可以使用HTML5对此进行验证。

点击此链接number

要验证号码,您可以使用ng-change指令来控制它,如果您想要更多控件使用ng-keyup

还要考虑查看&#34; custom validation&#34; angularjs的一部分形成文档 - 就像Patrick Ferreira sugested一样。

答案 1 :(得分:-1)

试试这个:

<input id="charge-hours" type="text" class="charge-position-hours-edit" placeholder="0" ng-model="charge.hours" ng-change="precondition()">

source