Form 表单

Form 表单

在开始看angularjs如何处理表单前, 我们先想想处理表单时可能遇到的问题

如何数据绑定
验证表单element e.g. input select etc
显示出错信息
整个Form的验证
避免提交没有验证通过的表单
如果防止多次提交
form

如果我们引用了anuglajs, 在一个controller的scope下写了一个HTML的form, 其实我们已经在使用 angularjs 的 form directive 了。

下面两种html的写法都会调用 angularjs 的form directive, 并且可以用myForm引用这个 form, 来判断表单是否验证通过。

<form name="myForm"></form>
<ng-form name="myForm"></ng-form>

bind model 如何双向绑定

用 ng-model。 下面的代码把controler scope下的person的name和一个叫做 personName input 绑定到了一起

<form>
  <input name="personName" ng-model="person.name"/>
</form>

valid field 验证表单element, 显示出错信息

这里分两部分, 第一部分是angular自带的验证器, 另一部分是自己实现的验证器。 这里只介绍第一种情况。 第二个会在单独的文章里描述。

angularjs 自带了一些html5的验证, 比如: 必填项、email、url (到1.0.7)其实只有这 三个 !!!^ ^

用法一如既往的简单, 都是声明式的. 下面我们定义了一个input,名字叫做 personEmail, 要求必须有输入,而且输入的必须是一个email. 通过变量

myForm.personEmail.$valid

我们可以判定这个input的输入是否合法, 从而决定是否显示出错信息。

具体是那类错误可以通过

 myForm.personEmail.$error

用法如下:

<form name="myForm">
  <input name="personEmail" required type="email" ng-model="person.email"/>
  <span ng-show="!myForm.personEmail.$valid">有错</span>
  <span ng-show="myForm.personEmail.$error.required">必填</span>
  <span ng-show="myform.personEmail.$error.email">email 地址不对</span>
</form>

form是否通

form.$invalid

用这个值可以控制提交按键的状态, 值允许valid的form可以提交.

<form name="myForm" ng-submit="save()">
  <input name="personEmail" required type="email" ng-model="person.email"/>
  <span ng-show="!myForm.personEmail.$valid">有错</span>
  <span ng-show="myForm.personEmail.$error.required">必填</span>
  <span ng-show="myform.personEmail.$error.email">email 地址不对</span>
  <input name="personName" required/>

  <input type="submit" ng-disabled="myForm.$invalid"/>
</form>

提交的方法, 我们通过ng-submit 绑定到了controller里的save函数上。

form的简单使用就是这样了

注意

在至少1.0.7下, input form的名字要用驼峰, 否者有问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值