【问题标题】:Validate angularjs model before value is set在设置值之前验证 angularjs 模型
【发布时间】:2014-06-02 14:04:05
【问题描述】:

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

<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 change,有没有办法保存 oldValue?然后我可能会写类似

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

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

如果您的问题是确保该值是一个整数和正数,您可以使用 HTML5 来验证这一点。

查看此链接number

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

还可以考虑查看 angularjs 表单文档的“custom validation”部分——就像 Patrick Ferreira 所建议的那样。

【讨论】:

    【解决方案2】:

    试试这个:

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

    source

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多