Я пытаюсь создать директиву angularjs, которая позволит вводить символ табуляции в текстовое поле. Его работа частично, но ошибка отображается неправильно. Я хочу, чтобы это поле также требовалось. Вот мой коддиректива angularjs для указания символа табуляции
.directive('allowTab', function() {
return {
require: 'ngModel',
link: function(scope, ele, attrs, c) {
ele.bind('keydown keyup', function(e) {
var val = this.value;
if (e.keyCode === 9 && e.type === 'keydown') { // tab was pressed
// get caret position/selection
var start = this.selectionStart,
end = this.selectionEnd;
// set textarea value to: text before caret + tab + text after caret
this.value = val.substring(0, start) + '\t' + val.substring(end);
// put caret at right position again
this.selectionStart = this.selectionEnd = start + 1;
c.$setValidity('allowTab', true);
// prevent the focus lose
return false;
}
else if(e.keyCode !== 9 && e.type === 'keyup') {
if(val === '') {
c.$setValidity('allowTab', false);
}
else {
c.$setValidity('allowTab', true);
}
}
});
}
}
});
вот jsfiddle: http://jsfiddle.net/36qp9ekL/184/
ТНХ для preventDefault(), чтобы сохранить фокус , – FarazShuja
Добро пожаловать! –