2016-08-18 3 views
0

Я пытаюсь отключить текстовое поле от обработки события клавиатуры, когда пользователь нажимает клавишу ввода клавиатуры, когда текстовое поле пуст с помощью угловых символов. Мне удалось отключить кнопку отправки, когда текстовое поле пуст, но я пытаюсь отключить текстовое поле, когда из события ввода, когда текстовое поле пуст.отключить текстовое поле с angularjs

Это моя попытка:

<div class="descriptionarea"> 
    <textarea ng-model="trackTxt" id="input" ></textarea> 
    <span class="buttonfortxtarea"> 
    <button ng-disabled="!trackTxt" class= "btn btn-mini description_submit" id="new-chat-button">Submit</button></span> 
    </div> 

Когда я попал войти с моего текстового поля это вызывает событие, используя следующий код

document.getElementById('input').addEventListener('keyup', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13) { // enter key press 
      send(); 
     } 
    }); 

Приведенный выше код работает ли пуста или не текстовое поле.

Editted:

В моем app.js из angularjs

app.controller('TodoCtrl',function($scope){ 

    //handle javascript enter event on key up 
    // function TodoCtrl($scope) { 

    $scope.trackTxt; 
    $scope.send = function($event){ 
     alert('TEST'); 
    } 

    $scope.isEmpty = function(param){ 
    return param.trim().length === 0; 
    } 
//} 

}); 

В Jsp файла

<div ng-controller="TodoCtrl"> 
    <textarea ng-keyup="$event.keyCode == 13 && !isEmpty(trackTxt) && send($event)" ng-model="trackTxt" id="input" ></textarea> 
    <span class="buttonfortxtarea"> 
    <button ng-disabled="!trackTxt" ng-click="send($event)" class= "btn btn-mini description_submit" id="new-chat-button">Submit</button></span> 
    </div></div> 

Пожалуйста, как можно использовать angularjs для предотвращения входа события происходили, когда когда-либо текстовая область пуста.

+0

путем ввода события, вы имеете в виду отправки формы событие? – harishr

+0

Waht вы хотите достичь, делая такое отключение события, которое отключает некоторые события и так ...? –

+0

Хорошо, может быть, вы хотите отключить кнопку отправки, когда нет текста в textarea, который не принимает учетные пространства и входит? –

ответ

0

Вы можете использовать нг-KeyUp для прикрепления функции на клавишу ввода нажмите,

ng-keyup="$event.keyCode == 13 && functionToCall()" 

Вот demo,

Благодаря

+0

Таким образом, вы можете использовать угловую директиву ** ng-keyup ** для привязки обработчика прослушивателя событий вверх. –

+0

Проверьте это обновление ** [FIDDLE] (https://jsfiddle.net/U3pVM/26786/) **, поскольку в нем содержится все требование, которое вы упомянули, извините, я пропустил один на своем предыдущем, спасибо, надеюсь, это поможет. –

+0

У меня возникли некоторые проблемы с реализацией этого в моем проекте – user6731422

0

Вы могли бы просто проверить, если он пустой ...

document.getElementById('input').addEventListener('keyup', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13 && $(this).val() != "") { // enter key press 
      send(); 
     } 
}); 

Это также может работать:

document.getElementById('input').addEventListener('keyup', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13 && $(this).val().length <= 0) { // enter key press 
      send(); 
     } 
}); 

Для предотвращения по умолчанию входа используйте preventDefault() Event Method

document.getElementById('input').addEventListener('keyup', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13 && $(this).val().length <= 0) { // enter key press 
      e.preventDefault(); //This avoid the enter... 
     } 
}); 

Как насчет sendChat() ...

document.getElementById('input').addEventListener('keyup', function (e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code == 13 && $(this).val().length <= 0) { // enter key press 
      e.preventDefault(); //This avoid the enter... 
     } 
     else if(code == 13 && $(this).val().length > 0) { 
      sendChat(); 
     } 
}); 
+0

Это предотвращает событие ввода клавиатуры – user6731422

+0

При попадании на клавиатуру ввода ничего не происходит даже когда в текстовом поле есть текст – user6731422

+0

Отредактировано, чтобы покрыть это, извините, что я плохо читал ... –

Смежные вопросы