首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角JS:基于数字或字母数字模式的单个字段上的多个错误消息

角JS:基于数字或字母数字模式的单个字段上的多个错误消息
EN

Stack Overflow用户
提问于 2017-10-12 07:00:21
回答 1查看 346关注 0票数 2

我有一个REFERENCE_NUMBER字段,它需要针对不同的条件进行不同的验证。例如,当支付类型为"A“时,REFERENCE_NUMBER字段必须是具有一定长度的字母数字。当支付类型为if "B“时,REFERENCE_NUMBER字段必须是不同长度的数字。我正在验证使用ng regex模式(ng模式)。如果"A“我需要ng消息来显示”必须只输入字母数字值“,而"B”则需要一条“必须只输入数字值”的消息。如何使用单个字段来识别模式是数字还是字母数字?

在我的控制器中,我创建了一个对象,用于根据支付模式选择模式-

代码语言:javascript
复制
var refnumpattern = {
    1: {"maxlength":"100","ngpattern":""}, //cash
    2: {"maxlength":"100","ngpattern":"" } , //credit card
    3: {"maxlength":"6", "ngpattern":"^[0-9]+$"},//DD
    4: {"maxlength":"100","ngpattern":""},//Debit card
    5: {"maxlength":"100" , "ngpattern":""},//netbanking
    6: {"maxlength":"6", "ngpattern":"^[0-9]+$"},//Cheque
    7: {"maxlength":"100","ngpattern":""},//COD
    8: {"maxlength":"11", "ngpattern":"^[0-9]+$"}, //merchant
};

$scope.referenceNumberPattern = refnumpattern[$scope.paymentMode.ID];

在Html中,我使用referenceNumberPattern对象来设置最大长度和模式-

代码语言:javascript
复制
<input id="txtReference" name="txtReference" type="text" ng-model="referenceNumber" ng-pattern="{{referenceNumberPattern.ngpattern}}" ng-maxlength="{{referenceNumberPattern.maxlength}}" />

<div ng-messages="aForm.txtReference.$error" ng-show="aForm.txtReference.$dirty && aForm.txtReference.$invalid" class=" error-message">
    <div ng-message="pattern">Please enter alphabets, numbers and spaces</div> <!-- Here I need to display numeric or alphanumeric message based on the pattern -->
    <div ng-message="maxlength">Reference Number can be of {{referenceNumberPattern.maxlength}} length only</div>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 08:43:44

你能做的是首先检查类型。并决定要使用什么regex表达式和错误消息。

代码语言:javascript
复制
if($scope.type == 'A')
{
     $scope.pattern= 'your expression';
     $scope.errorMessage = 'your error message';
     $scope.maxLenght = 10;
}
else if($scope.type == 'B')
{
     $scope.pattern= 'your expression';
     $scope.errorMessage = 'your error message';
     $scope.maxLenght = 20;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46703343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档