I am trying to focus the first tab which contains invalid field on a form submit. I did manage to focus on the first input field but it doesn't work if the field is in another tab and I have no idea how to make it works.
Here is my html file:
<uib-tabset justified="true">
<uib-tab heading="{{ 'PERSONAL_INFORMATION' | translate }}">
inputs...
</uib-tab>
<uib-tab heading="{{ 'BANK_ACCOUNTS' | translate }}">
inputs...
</uib-tab>
<uib-tab heading="{{ 'CONNECTIVITY' | translate }}">
inputs...
</uib-tab>
</uib-tabset>
The directive that focus on the first invalid input:
app.directive('focus', function() {
return {
restrict : 'A',
link : function(scope, elem) {
// set up event handler on the form element
elem.on('submit', function() {
// find the first invalid element
var firstInvalid = elem[0].querySelector('.ng-invalid');
// if we find one, set focus
if (firstInvalid) {
firstInvalid.focus();
}
});
}
};
});
I would appreciate any help.