资讯专栏INFORMATION COLUMN

angular表单验证

Cristalven / 1314人阅读

摘要:如果想要屏蔽浏览器对表单的默认验证行为,可以在表单元素上添加标记。如果未修改,值为,如果修改过值为修改过的表单只要用户修改过表单,无论输入是否通过验证,该值都返回合法的表单这个布尔型的属性用来判断表单的内容是否合法。

借助AngularJS,我们不需要花太多额外的精力就可以轻松实现客户端表单验证功能。虽然 Web应用安全不能完全依赖客户端验证,但客户端验证可以提供表单状态的实时反馈。
要使用表单验证,首先要确保表单有一个name属性。
所有输入字段都可以进行基本的验证,比如最大、最小长度等。这些功能是由新的HTML5 表单属性提供的。
如果想要屏蔽浏览器对表单的默认验证行为,可以在表单元素上添加novalidate标记。
下面看一下可以在input元素上使用的所有验证选项。

必填项
验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可:

    

最小长度
验证表单输入的文本长度是否大于某个最小值,在输入字段上使用AngularJS指令ng-minleng= "{number}":

    

最大长度
验证表单输入的文本长度是否小于或等于某个最大值,在输入字段上使用AngularJS指令 ng-maxlength="{number}":

    

模式匹配
使用ng-pattern="/PATTERN/"来确保输入能够匹配指定的正则表达式:

    

电子邮件
验证输入内容是否是电子邮件,只要像下面这样将input的类型设置为email即可:

    

数字
验证输入内容是否是数字,将input的类型设置为number:

    

URL
验证输入内容是否是URL,将input的类型设置为 url:

    

在表单中控制变量
表单的属性可以在其所属的$scope对象中访问到,而我们又可以访问$scope对象,因此 JavaScript可以间接地访问DOM中的表单属性。借助这些属性,我们可以对表单做出实时(和 AngularJS中其他东西一样)响应。这些属性包括下面这些。

   未修改的表单    formName.inputFieldName.$pristine   
   这是一个布尔属性,用来判断用户是否修改了表单。如果未修改,值为true,如果修改过值为false;
    
   修改过的表单    formName.inputFieldName.$dirty
   只要用户修改过表单,无论输入是否通过验证,该值都返回true:
    
   合法的表单     formName.inputFieldName.$valid
   这个布尔型的属性用来判断表单的内容是否合法。如果当前表单内容是合法的,下面属性的 值就是true:
    
   不合法的表单    formName.inputFieldName.$invalid 
   这个布尔属性用来判断表单的内容是否不合法。如果当前表单内容是不合法的,下面属性的 值为true:
    
   错误   formName.inputfieldName.$error
   如果验证失败,这个属性的值为true;如果值为false,说明输入字段的值通过了验证。 

下面结合具体的例子,来运用上面的属性


用户名不能为空

用户名长度应该在5-10位之间


密码不能为空

密码长度应该在6-10位之间


两次密码输入不一致


邮箱格式错误


手机号码格式错误

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87081.html

相关文章

  • angular表单验证2

    摘要:表单验证使用场景在实际的开发中我们可能会有这样的情况。姓名不能为空姓名太短姓名太长姓名不能为空姓名太短姓名太长借助表单本身比之前的更简单了。结尾以上就是关于表单验证的全部内容。 前言 在之前的文章《angular表单验证》中主要介绍了一些关于angular表单验证的基础知识。在此篇中将着重以扩展angular表单验证的相关内容和实际开发中的应用为主。 表单验证使用场景1 在实际的开发...

    darkbug 评论0 收藏0
  • angular4 学习记录 -- 表单

    摘要:在表单上添加的会拦截标准的表单提交事件。并为它们提供了一些共同的行为和属性,其中有些是可观察对象。用于跟踪一个单独的表单控件的值和有效性状态。组件中的顶级表单就是一个。在表单所在的中的上添加,再在指定的验证方法中调用来显示验证失败信息。 angular4 表单 模板表单 在app.module中导入FormsModule之后,项目中的form表单都会是一个ngForm,也就是一个模板表...

    james 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    alogy 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    hzc 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<