gpt4 book ai didi

javascript - 如何在angularJS中将输入字段设置为ng-invalid

转载 作者:可可西里 更新时间:2023-11-01 01:20:19 26 4
gpt4 key购买 nike

我想检查信用卡号的输入字段。

该字段在最小长度为 13 之前应保持无效。由于用户应该能够在该字段中填充空格,因此我在 javascript 函数中删除了这些空格。在此函数中,我想检查信用卡号(不带空格)并将其设置为 ng-invalid,只要最小长度小于 13 且最大长度大于 16。

应该是这样的:

$scope.ccHandler = function() {
if ($scope.ccNumber == '') {
document.getElementById("ccProvider").disabled = false;
}
$scope.ccNumber = inputCC.value.split(' ').join(''); //entfernt die Leerzeichen aus der Kreditkartennummer vor der übergabe an den Server
console.log("das ist meine CC: " + $scope.ccNumber);
isValidCreditCardNumber($scope.ccNumber);
getCreditCardProvider($scope.ccNumber);
document.getElementById("ccProvider").disabled = true;
if ($scope.ccNumber.length < creditCardNumberMinLength || $scope.ccNumber.length > creditCardNumberMaxLength) {
//$scope.ccNumber.ng-invalid = true;
console.log("ccNumber ist noch ungültig!");
//document.getElementById("inputCC").$setValidity("ccNumber", false);
}
}

这将是 XHTML 的一部分:

<div class="form-group" ng-switch-when="CreditCard">
<label class="col-xs-3 col-sm-3 control-label">Kreditkartennummer</label>
<div class="col-xs-5 col-sm-5 col-md-5">
<input name="ccNumber" class="form-control" type="text" id="inputCC" ng-change="ccHandler();updateCount()" ng-model="ccNumber" ng-required="true"/>
</div>
</div>

我怎样才能做到这一点?

最佳答案

你可以用 $setValidity 做到这一点.你需要设置一个 name <form> 上的属性为了这个工作。

<form name="myForm">
<input name="ccNumber" ng-model="ccNumber">
<span ng-show="myForm.ccNumber.$error.minLength">
A cc number should be minimum 10 chars
</span>
</form>

然后你可以手动设置有效性

$scope.myForm.ccNumber.$setValidity("minLength",$scope.ccNumber.length>=10);

这是一个有效的 plnkr:http://plnkr.co/edit/7J326LR194SaoE2TmHuU?p=preview

关于javascript - 如何在angularJS中将输入字段设置为ng-invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22982647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com