使用angularjs禁用textarea

时间:2016-08-18 15:24:37

标签: javascript html angularjs

当使用angularjs将textarea为空时,当用户按下键盘的回车键时,我试图禁用textarea来处理键盘事件。当textarea为空时我能够禁用提交按钮,但是当textarea为空时,我试图在输入事件时禁用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>

当我从我的textarea按Enter键时,它会使用以下代码触发事件

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

上面的代码适用于textarea是否为空。

EDITTED:

在我的angularjs的app.js

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来防止enter事件发生。

2 个答案:

答案 0 :(得分:0)

您只需检查它是否为空......

make_shared

这也可行:

document.getElementById('input').addEventListener('keyup', function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 13 && $(this).val() != "") { // 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
            send();
        }
});

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...
        }
});

答案 1 :(得分:0)

您可以使用ng-keyup在按下回车键时附加功能,

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

这是demo

由于