1

I want to add class to span element using angular

<div class="input-group textbox-wrap fade-in two">                      
   <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>                         
   <input type="text" class="form-control" id="username" placeholder="{{'global.form.username.placeholder' | translate}}" 
      required="required" data-ng-model="username" ng-focus="focusInput($event)" ng-blur="blurInput($event)" autofocus />
</div>

I am able to adding the class to parent div but i need to apply class for span element.

In the controller,

$scope.focusInput= function($event )
  {
    angular.element($event.target).parent().addClass('focused');    
  };
2
  • Can you try with jquery selectors to achieve this? Commented Mar 31, 2015 at 7:10
  • He's actually already doing that, angular.element is a wraper for the jquery function, when jquery is available. Commented Mar 31, 2015 at 7:16

3 Answers 3

1

You could do it on HTML itself.

<div class="input-group textbox-wrap fade-in two">
    <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
      <input type="text" class="form-control" id="username" placeholder="{{'global.form.username.placeholder' | translate}}" 
       required="required"  ng-class="'focused':focused"
    data-ng-model="username" ng-focus="focused=true" ng-blur="focused=false" autofocus />
</div>
Sign up to request clarification or add additional context in comments.

Comments

1

You could use ngClass directive on the span element, based on a variable you set on the focus input function.

Comments

1

You can do this:

<div class="input-group textbox-wrap fade-in two">                      
   <span class="input-group-addon" ng-class="{'yourClass': inputFocused}"><i class="glyphicon glyphicon-user"></i></span>                         
   <input type="text"  class="form-control" id="username" placeholder="{{'global.form.username.placeholder' | translate}}" 
      required="required" data-ng-model="username" ng-focus="focusInput()" ng-blur="blurInput($event)" autofocus />
</div>

$scope.focusInput= function($event )
  {
    $scope.inputFocused = true;
  };

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.