angularjs 表单校验指令_angularJs 表单验证指令

angularJs 前端验证指令

var rcSubmitDirective = {

'rcSubmit': function ($parse) {

return {

restrict: "A",

require: [ "rcSubmit", "?form" ],

controller: function() {

this.attempted = false;

var formController = null;

this.setAttempted = function() {

this.attempted = true;

};

this.setFormController = function(controller) {

formController = controller;

};

this.needsAttention = function(fieldModelController) {

if (!formController) return false;

if (fieldModelController) {

return fieldModelController.$invalid && (fieldModelController.$dirty || this.attempted);

} else {

return formController && formController.$invalid && (formController.$dirty || this.attempted);

}

};

},

compile: function() {

return {

pre: function(scope, formElement, attributes, controllers) {

var submitController = controllers[0];

var formController = controllers.length > 1 ? controllers[1] : null;

submitController.setFormController(formController);

scope.rc = scope.rc || {};

scope.rc[attributes.name] = submitController;

},

post: function(scope, formElement, attributes, controllers) {

var submitController = controllers[0];

var formController = controllers.length > 1 ? controllers[1] : null;

var fn = $parse(attributes.rcSubmit);

formElement.bind("submit", function(event) {

submitController.setAttempted();

if (!scope.$$phase) scope.$apply();

if (!formController.$valid) return;

scope.$apply(function() {

fn(scope, {

$event: event

});

});

});

}

};

}

};

}

};

验证通过

ng-app="LoginApp" ng-controller="LoginController" rc-submit="login()">

ng-class="{'has-error': rc.loginForm.needsAttention(loginForm.username)}">

placeholder="Username" required ng-model="session.username" />

ng-show="rc.form.needsAttention(loginForm.username) && loginForm.username.$error.required">Required

ng-class="{'has-error': rc.loginForm.needsAttention(loginForm.password)}">

placeholder="Password" required ng-model="session.password" />

ng-show="rc.form.needsAttention(loginForm.password) && loginForm.password.$error.required">Required

value="Login" title="Login">

Login

样式如下

前端验证通过会调用login()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值