2015-05-09 43 views
2

我在Yii动态表单中使用AngularJS v1.3.15进行表单验证,但它似乎对输入名称进行了角度验证。问题是输入的名称是数组格式,例如:name="LoginForm[username]"。我在这里复制我的代码:Yii表单上的角度表单验证

<div class="col-md-4 col-md-offset-4 m-t-lg" ng-app="validationApp" ng-controller="mainController"> 
      <section class="panel"> 
       <header class="panel-heading text-center"><strong>Admin Sign in </strong> </header> 
       <?php 
         $form=$this->beginWidget('CActiveForm', array(
          'id'=>'formLogin', 
          'htmlOptions'=> array('name'=>'userForm', 'class'=>'panel-body', 'ng-submit'=>'submitForm($event)', 'novalidate'=>'true'), 
          'action'=>'#', 
          'enableAjaxValidation'=>false, 
         )); 
        ?> 
        <div class="form-group" ng-class="{'has-error' : userForm.username.$invalid && !userForm.username.$pristine}"> 
         <label class="control-label">Email</label> 
         <?php echo $form->emailField($model, 'username', array('placeholder'=>'[email protected]', 'class'=>'form-control', 'ng-model'=>'user.username', 'ng-pattern'=>"/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", 'required'=>'true', 'id'=>'username')); ?> 
         <?php echo $form->error($model,'username'); ?> 
        </div> 
        <div class="form-group" ng-class="{'has-error' : userForm.password.$invalid && !userForm.password.$pristine}"> 
         <label class="control-label">Password</label> 
         <input type="password" placeholder="Password" ng-minlength="6" class="form-control" name="password" ng-model="user.password" required> 
        </div> 
        <div class="checkbox"> 
         <label> <input type="checkbox"> Keep me logged in 
         </label> 
        </div> 
        <button type="submit" class="btn btn-info" ng-disabled="userForm.$invalid">Sign in</button> 
       <?php $this->endwidget(); ?> 
      </section> 
     </div> 
    </div> 

这里是角形器的脚本代码:

 var app = angular.module('validationApp',[]); 
     app.controller('mainController', function($scope) { 
      $scope.submitForm = function($event){ 
      if ($scope.userForm.$valid){ 
       $scope.submit(); 
      } else $event.preventDefault(); 
     } 
     }); 

它工作正常,如果我改变输入的名称作为一个单词,如“用户名”和“密码“,但它在当前情况下不起作用,名称为”LoginForm [username]“。它与密码字段工作正常,因为它的普通名称,但用户名字段不相同。

+0

你能告诉生成的表单的代码? – Goodnickoff

回答