отключить текстовую область с помощью angularjs

0

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

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

<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>

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

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

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

Editted:

В моих приложениях 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
    под вводом события вы подразумеваете событие отправки формы?
  • 0
    Что вы хотите достичь, сделав такое отключение события, которое отключит некоторые события и так далее ...?
Показать ещё 3 комментария

2 ответа

0
Лучший ответ

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

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

Вот демонстрация,

благодаря

  • 0
    Таким образом, вы можете использовать угловую директиву ng-keyup для присоединения обработчика событий прослушивания key up.
  • 0
    Проверьте это обновление FIDDLE, так как оно содержит все требования, которые вы упомянули. Извините, я пропустил одно из предыдущих, Спасибо, надеюсь, это поможет.
Показать ещё 16 комментариев
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()

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
    Это предотвращает ввод события клавиатуры
  • 0
    При нажатии клавиши ввода ничего не происходит, даже если в текстовой области есть текст
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню