angularjs中form表单提交验证

angular.module("MyApp",["ngMessages"]);
<form name="formMyName" ng-submit="$ctrl.changePassword(formMyName)" ng-cloak novalidate>
  <--输入新密码-->
  <md-input-container md-no-float>
     <input name="newPassword" type="password" ng-model="$ctrl.data.newPassword" placeholder="请输入密码" 
      
ng-pattern='/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*(),.])[\da-zA-Z~!@#$%^&*(),.]{6,}$/'minlength="6" maxlength="20"required/>
    //错误:$error
    //用法:formMyName.指定所验证的input框的name.$error
    //解释:当当前表单所有验证都通过时$error值为false表示验证通过,当所有验证中存在验证失败的情况,$error值为true,则验证不通过。   <div class="errors" ng-messages="formMyName.newPassword.$error">
    <--formMyName对应form表单name,newPassword对应input输入框name,ng-message验证的是form表单下name为newPassword的input框中ng-pattern、minlength、maxlength、required这些验证是否通过,
    当验证不通过时$error为false就会执行ng-message-exp并显示下面的提示,反之当验证通过时$error为true。-->   <div ng-message-exp=['required','minlength','maxlength','pattern']>   您需要输入6-20位密码,且必须包括数字、大写字母、小写字母、非数字字符。   </div>
    </div
  </md-input-container>

  <--输入确认密码-->
  <md-input-container md-no-float>
    <input name="confirmPassword" type="password" ng-modal="$ctrl.data.confirmPassword" placeholder="请输入确认密码"/>
    //表单提交时验证条件:$submitted
    //用法:<p ng-if=“formMyName.$submitted $$ 验证条件”>错误提示</p>
    <p ng-if="formMyName.$submitted && $ctrl.data.newPassword != $ctrl.data.confirmPassword">
      确认密码必须和新密码一致
    </p>
  <--在这个地方确认密码只需要验证确认输入的密码和新密码是否一致就可以了,不需要再去验证最小、最大长度和是否必填那些,因为如果两次密码一致的话上面那些验证是一定通过的,如果两次密码不一致上面那些验证也就没有意义的,
    然后我们可以看到,这里用的是ng-if进行的判断,但是ng-if不属于表单验证,所以后面我们需要用js再进行验证。我们看ng-if里面的条件,formMyName对应form表单name,$submitted表示的是当点击提交按钮时进行验证。-->
  </md-input-container>

  <md-button type="submit">
    提交
  </md-button>
</form>
angular.module('').controller('', [
    '$rootScope', '$mdDialog',
    function ($rootScope, $mdDialog) {
        var data = this.data = {
            Password: null,
            ConfirmPassword: null
        };
    //修改密码
        this.changePassword = function (changePasswordForm) {
    //验证输入内容有没有通过表单验证
    //验证确认密码与新密码是否一致
        //未通过验证的表单:$invalid
        //用法:formMyName.$invalid或者formMyName.指定所验证的某个input框的name.$invalid
        //解释:当表单未通过验证时,值为true,反之测为false。
if (formMyName.$invalid || data.Password != data.ConfirmPassword) { return } $mdDialog.hide(data.Password); }; } ]);

  

转载于:https://www.cnblogs.com/ncloud/p/7894514.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值