位置: 编程技术 - 正文

详细解读AngularJS中的表单验证编程(详细解读了)

编辑:rootadmin

推荐整理分享详细解读AngularJS中的表单验证编程(详细解读了),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:详细解读政策,详细解读蓝宇,详细解读朗诵中的停连技巧,详细解读蓝宇,详细解读的近义词,详细解读的近义词,详细解读的近义词,详细解读富士康Model B官图,内容如对您有帮助,希望把文章链接给更多的朋友!

需求

Name 必填 Username 非必填,最小长度3,最大长度8 Email 非必填,但必须是合法的email 验证未通过的表单不能提交 显示一个必填或者非法email格式的错误信息 如果正确提交就弹出一个祝贺信息

现在知道我们的目标了吧,让我们一起来构建这个东西吧.

Angular 的表单属性 $valid, $invalid, $pristine, $dirty

Angular 提供了有关表单的属性来帮助我们验证表单. 他们给我们提供了各种有关一个表单及其输入的信息,并且应用到了表单和输入.属性类 描述

$valid ng-valid Boolean 告诉我们这一项当前基于你设定的规则是否验证通过 $invalid ng-invalid Boolean 告诉我们这一项当前基于你设定的规则是否验证未通过 $pristine ng-pristine Boolean 如果表单或者输入框没有使用则为True $dirty ng-dirty Boolean 如果表单或者输入框有使用到则为True

Angular 也提供了有关表单及其输入框的类,以便你能够依据每一个状态设置其样式.访问表单属性

方位表单: <form name>.<angular property> 访问一个输入框: <form name>.<input name>.<angular property>

设置我们的表单

我们将使用一个简单的表单来做演示.

我们将需要两个文件:

index.html 我们用来显示表单的代码 app.js 我们的Angular应用程序和控制器 (几乎没有任何代码)

Our Form Code index.html

这里列出了一些关键点:

novalidate: 它将会组织默认的HTML5验证,因为这会由我们自己来做(我们自己的将会更棒) 我们在输入框上应用了ng-model,以便将来自表单的数据绑定到angular变量 username上的ng-minlength 和 ng-maxlength会自己创建其规则 name 输入框是必填的 email 输入框有属性 type=”email”

验证规则

Angular 有很多验证规则,像是 tong-min leng than dng-max length.

Angular还可以自己配置规则. Angular输入指引上有说明 .

现在建好了表单, 接着创建Angular应用和控制器,ng-app ng-控制器.应用的 Codeapp.js

使HTML5验证器的novalidate

我们将在我们的表单使用novalidate。这是一个很好的做法,因为我们将会自己处理验证。如果我们让我们的表单这样做,它看起来很丑陋。

禁用提交按钮 ng-disabled

现在真正的好戏上演了。我们开始使用Angular的属性 。首先让我们禁用我们的提交按钮。如果我们的表单是$invalid的,我们只想禁用它。

只使用一点代码(ng-disabled),如果我们的表单是$invalid的,表单按钮将被禁用。 这意味着,我们的name input 字段是必需的,并且email input字段需要一个有效的电子邮件。

用 eng-show显示错误信息

详细解读AngularJS中的表单验证编程(详细解读了)

ng-valid 和ng-invalid 会基于提供的表单规则自动验证输入的有效性.

咱们在输入部分加一些错误信息,只要不等于$valid或是已经使用过的就行 (不能展示还没使用).

就像这样 Angular 会根据规则来验证输入部分的$invalid 和 $pristine properties属性从而决定是否显示错误信息.

格局类

Angular在验证输入或表单时的有效有否是已经提供了一些类,像是 (ng-valid,ng-invalid,ng-pristineandng-dirty).

你可以编辑自己喜欢的CSS . 你可以私有定制化这些类来实现特定的场景应用.

使用 ng-class 根据条件添加类

因为我们使用了 Bootstrap, 我们将就使用它们提供的类(has-error). 这样就能围绕我们的form-group获得漂亮的错误信息和颜色.

ng-class 允许我们基于一个表达式添加类. 在这种情况下,我们想要想我们的form-group添加一个 has-error 类,如果输入框的状态是$invalid或者不是pristine的话.

其工作的方式是 ng-class="{ <class-you-want> : <expression to be evaluated > }". 更多的信息,请读一读 Angular ngClass 文档吧.

现在我们的表单就有了恰当的Bootstrap错误类.

只在提交表单后显示错误信息

有时候不想在用户正在输入的时候显示错误信息. 当前错误信息会在用户输入表单时立即显示. 由于Angular很棒的数据绑定特性,这是可以发生的. 因为所有的事务都可以在一瞬间发生改变,这在表单验证时会有副作用.

对于你想要只在表单正要提交之后才显示错误消息的场景, 你就需要对上面的代码做一些小调整.

你要去掉提交按钮上的ng-disabled,因为我们想要用户即使是在表单没有全部验证完的情况下也能点击提交. 你要在表单已经被提交之后添加一个变量. 在你的 submitForm() 函数中, 只要加入 $scope.submitted = true 就行了;. 一旦表单被提交,它就会保存提交值为true的submitted变量. 将错误规则从ng-class="{ 'has-error' : userForm.name.$invalid && !userForm.name.$pristine }" 调整为 ng-class="{ 'has-error' : userForm.name.$invalid && !userForm.name.$pristine && submitted }". 这就确保了错误消息只会在表单被提交时被显示出来. 你也许会需要为这个变量调整所有其它的 ng-class 和 ng-show.

现在,只有在submitted变量被设置为true时才会显示错误信息. 只有在输入框之外点击时才显示错误消息

只有在输入框之外点击时才显示错误消息(也被叫做失去焦点 blur) 这一需求比在提交时验证要复杂一点. 在失去焦点时验证表单需要一个custom指令. 这是一个可以让你操作DOM的指令.

我们正在写一篇文章专门讨论此话题。同时,还有其他的一些资源讨论了创建custom指令来处理失去焦点的情况:

一旦我们提交了表单,我们将会见到我们设置的弹出消息.

用了几行我们就可以:

进行输入框验证 显示表单错误消息 定制样式类 自动禁止和启用表单 定制规则

如你所见,我们使用了Angular内置的表单验证技术来创建一个客户端验证表单.

详细分析使用AngularJS编程中提交表单的方式 在AngularJS出现之前,很多开发者就面对了表单提交这一问题。由于提交表单的方式繁杂而不同,很容易令人疯掉……然而现在看来,依然会让人疯掉。

使用ngView配合AngularJS应用实现动画效果的方法 AngularJS提供了一个很棒的方式来创建单页app。正是由于这个原因,使得我们的站点看起来更像是一个原生的手机程序。为了使它看起来更像是原生的程

使用AngularJS处理单选框和复选框的简单方法 AngularJS对表单的处理相当简单。在AngularJS使用双向数据绑定方式进行表单验证的时候,实质上它在帮我们进行表单处理。使用复选框的的例子有很多,

标签: 详细解读了

本文链接地址:https://www.jiuchutong.com/biancheng/380437.html 转载请保留说明!

上一篇:使用AngularJS编写较为优美的JavaScript代码指南(angularjs2)

下一篇:详细分析使用AngularJS编程中提交表单的方式

  • 资本公积转增资本会引起什么变化
  • 增值税额的计算公式写销售额除以1.13*0.13对吗
  • 手工现金日记账怎么转下一页
  • 受托代销商品款和受托代销商品的区别
  • 移动发票抬头个人税号公司能报销吗
  • 公司装修费可以计入开办费吗
  • 住房公积金个人和单位各承担多少
  • 出售股票公允价值变动在借方
  • 公司偷税漏税是当事人责任大还是法人责任大
  • 委托加工设备
  • 领备用金时会计怎么做分录
  • 打官司败诉承担的费用
  • 建筑业红字发票备注
  • 错把费用计入固定资产次月如何调账
  • 企业支付小额劳务费税率
  • 融资租赁开始日最低租赁付款额
  • 哪些税种可以税前扣除
  • 建筑企业之前的工作内容
  • 个人能去税务局开普票吗
  • 未在规定期限内发出追索通知
  • 销售换货怎么做账务处理
  • 计入成本的有哪些科目
  • 增值税普通发票怎么开
  • 产品核算会计业务流程
  • 融资租赁的利息可以税前扣除吗
  • Win11 Build 22000.132 预览版 ISO 官方镜像下载与安装
  • 公司免税是指免的什么税
  • 一次性收取一年租金
  • 重装系统后分辨率1920x1080不见了
  • 小规模纳税人的企业所得税怎么算
  • 资产负债表的编制方法和步骤
  • 长期挂账的在建工程如何处理
  • 企业会计的日常行为准则
  • 汇兑结算计入什么会计科目
  • 持有待售资产是流动还是非流动
  • 不得从销项税额中抵扣的是
  • 按摊余成本计量的应收账款
  • php 时间
  • php判断是否为整数
  • mongodb的安装配置
  • 企业营业税怎么征收
  • 有关预收款的说法
  • 押金的增值税处理流程
  • 弥补以前年度亏损报表怎么填
  • 写个电影剧本多少钱
  • 固定资产报废的账务处理
  • 接受捐赠固定资产存货等有相关凭据的其成本按什么确定
  • 电子承兑汇票做账看哪个日期
  • 贷款罚息会计分录
  • 公司不营业需要交税吗
  • 股东投入固定资产怎么做账
  • 未开票收入是否代表可以不开发票
  • 出口货物没有进项发票用什么平台申报
  • 这么查看
  • Navicat for MySQL(mysql图形化管理工具)是什么?
  • sqlserver连接异常
  • mysql 5.7.17 winx64安装配置教程
  • 一个绝招 组合的成语
  • 如何屏蔽网络?
  • 怎么卸载电脑上的迅雷软件
  • winxp怎么改壁纸
  • win8.1如何设置
  • Win10 Build 14316启用Linux Bash 环境图文教程
  • jQuery Real Person验证码插件防止表单自动提交
  • node.js可以跨平台吗
  • node.js console.log
  • Interlnk、Intersvr、Qbasic命令的使用方法
  • 视锥是什么意思
  • apktool破解应用内购
  • 批处理设置ip地址配置的dns
  • python元数据
  • axios使用jsonp
  • koa2 koa
  • js实现上下左右跳动
  • 欢迎使用本公司智能语音电动车音效
  • 不想让浏览器运行
  • 数据字典实例详解
  • 运输公司抵扣
  • 企业代缴房产税可以入账吗
  • 税务登记证发证机关名称
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设