2017-06-14 124 views
-1

我刚刚开始使用Angular 2,我试图弄清楚如何验证表单,以便它不允许输入小于$ .01的任何内容。我尝试了一些不同的东西,但到目前为止,它仍然允许按下提交按钮。任何人都可以指出我正确的方向吗?表单验证

+0

检查此链接。应该为您提供指导:https://angular.io/guide/form-validation#custom-validation –

+0

请尝试添加您尝试过的内容和结果? – CharanRoot

+0

我尝试过的一件事是在表单中使用了不同的正则表达式,但是这根本不起作用。它仍然允许按下按钮。我也尝试使用ngModel对象,但我确信我没有正确使用它。 – cozy2963

回答

0

实现此目的的一种方法是将0.01输入与$ scope.balance绑定,并将保存按钮绑定到$ scope.save。 例如您的模板是这样的:

<div> 
    <md-input-container> 
    <label>Balance</label> 
    <input ng-model="balance" type="number" required> 
    </md-input-container> 
    <div style="color:red">{{error}}</div> 
    <md-button ng-click="answer()>Save</md-button> 
</div> 

然后在你的控制器:

$scope.balance = 0; 
$scope.save = function() { 
    if ($scope.balance < 0.01) { 
    $scope.error = "Please enter some value that is no less than 0.01"; 
    return; // any invalidate number will not be saved. 
    } 
    // do your other save operation 
} 

通过这样做,你必须灵活地做其他验证,并给自己的错误消息给用户。

+0

您的答案适用于AngularJS(如版本1.x),问题要求Angular(版本2及以上版本)。 “Angular 2”中没有'$ scope'了。 – mtx

+0

哦,是的。我的解决方案仅适用于AngularJS。 – Luke