Javascript 模型得到';未定义';当$setValidity设置为false时
我有一个带有一个输入字段的表单,当值更改时,我使用$setValidity验证该输入。但问题是,当$setValidity设置为false(无效)时,模型不再更新,它保留值“undefined” 这是我的HTML:Javascript 模型得到';未定义';当$setValidity设置为false时,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一个带有一个输入字段的表单,当值更改时,我使用$setValidity验证该输入。但问题是,当$setValidity设置为false(无效)时,模型不再更新,它保留值“undefined” 这是我的HTML: <form name="frmEnrollPaymentPlan" novalidate autocomplete="off"> <div class="form-group" ng-class="{'has-error':(frmEnrollPaymentP
<form name="frmEnrollPaymentPlan" novalidate autocomplete="off">
<div class="form-group" ng-class="{'has-error':(frmEnrollPaymentPlan.dwnAmt.$invalid && !frmEnrollPaymentPlan.dwnAmt.$pristine)||frmEnrollPaymentPlan.dwnAmt.$error.validateDownPaymentAmount}">
<label>Downpayment</label>
<input type="text" class="form-control" name="dwnAmt" ng-model="EnrollPaymentPlanViewModel.DownPaymentAmount" required ng-change="downPaymentChanged()" ng-model-options="{allowInvalid: true}">
<span ng-show="frmEnrollPaymentPlan.dwnAmt.$error.validateDownPaymentAmount" ng-class="{'error':frmEnrollPaymentPlan.dwnAmt.$error.validateDownPaymentAmount}">Cannot be less than down payment amount</span>
</div>
</form>
头期款
不能小于首付款金额
下面是我的javascript代码:
$scope.downPaymentChanged = function () {
if (!isNaN($scope.EnrollPaymentPlanViewModel.DownPaymentAmount)) {
var downPaymentAmount = parseFloat($scope.EnrollPaymentPlanViewModel.DownPaymentAmount);
var minDownPaymentAmount = parseFloat($scope.EnrollPaymentPlanViewModel.MinDownPaymentAmount);
if (downPaymentAmount < minDownPaymentAmount) {
$scope.frmEnrollPaymentPlan.dwnAmt.$setValidity("validateDownPaymentAmount", false);
}
else {
$scope.frmEnrollPaymentPlan.dwnAmt.$setValidity("validateDownPaymentAmount", true);
}
}
$scope.downPaymentChanged=函数(){
如果(!isNaN($scope.EnrollmPaymentPlanViewModel.DownPaymentAmount)){
var downPaymentAmount=parseFloat($scope.EnrollPaymentPlanViewModel.downPaymentAmount);
var minDownPaymentAmount=parseFloat($scope.EnrollPaymentPlanViewModel.minDownPaymentAmount);
如果(首付金额
}您的模型不再更新是什么意思?我尝试了上面的代码,发现$scope.EnrollPaymentPlanViewModel.DownPaymentAmount即使在有效性为false之后仍在获取新值。@noveyak,实际上问题在于我使用的AngularJS v1.3.0版本的AngularJS角度版本,但在AngularJS v1.2.26上工作正常,那么,为什么setValidity不在v1.3.0上运行,itHmm的替代方案是什么呢?祝你好运。我还是不太确定我在这里设置的这个小玩意儿出了什么问题。代码似乎按预期运行。