javascript - 如何捕获 AngularJS 输入字段中的模式错误?

标签 javascript angularjs regex forms

我构建了一个函数捕获错误,但它仅适用于标准 HTML5 验证,如果我使用 ng-pattern 它无法捕获错误:( 它是如何制作的?也许类似于 if(error.login$无效)

模板:

<input type="text" name="login" class="form-input"
    ng-model="newUser.login"
    ng-pattern="loginPattern"
    required>
<div class="error"
    ng-show="registrationForm.login.$invalid && registrationForm.login.$dirty">
    {{getSigningError(registrationForm.login.$error)}}
</div>

Controller :

$scope.getSigningError = function(error){
    if(angular.isDefined(error)){
        if(error.required){
            return "Field shouln`t be empty"
        }
        if(error.email){
            return "Enter correct email"
        }
        if(error.login){
            return "Enter correct login"
        }
    }
}

最佳答案

您可以在您的条件下使用error.pattern,如下面的代码:

if(error.pattern){
    return "Enter the correct format"
}

或者您可以使用以下方法从模板端处理它:

<span ng-if="myForm.login.$error.pattern">Invalid Pattern</span>

观察: ngPattern 与其他验证器一样,将为模式验证器 ng 添加 ng-invalid 和特定类-无效模式。因此,如果您想对此类错误应用特定样式,可以使用此类。

.ng-invalid-pattern  {
    color: yellow;
}

引用文献

Forms

关于javascript - 如何捕获 AngularJS 输入字段中的模式错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45866153/

相关文章:

angularjs - 为什么混合插值和表达式是不好的做法

javascript - 访问与导入类型同名的 ES6 类型

javascript - cordova 未定义 - cordova.js 已加载::Ionic

html - 下拉列表和按钮在同一行 Angular 对齐方式

java - 从模式中提取单词

windows - 为什么 findstr 不能正确处理大小写(在某些情况下)?

java - 如何拆分字符串,只保留某些分隔符?

javascript - 如何在 Azure 存储过程中使用 SQL 中的变量

javascript - 如何使列表元素可编辑

javascript - Highcharts : On drillup, 如何取消选择我选择的点?