如果值大于255,如何使用angularJS禁用按钮?

时间:2015-03-26 14:02:34

标签: javascript html angularjs

如果textarea包含超过255个字母,我想使用angularJS来禁用提交按钮。我通常不使用angularJS,所以我真的不知道怎么做。这就是我所拥有的:(HTML)

<tr>
    <td colspan="2" align="center">
        <textarea rows="5" cols="40" name="Messge" ng-model="message"></textarea>
    </td>
</tr>
<tr>
    <td align="center">Number of letters left: <span ng-bind="left()"></span>
    </td>
</tr>
<tr>
    <td align="center" colspan="2">
        <input type="submit" value="submit" ng-disabled="error" />
    </td>
</tr>

现在这里是javascript文件代码:

angular.module('myApp', []).controller('userCtrl', function ($scope) {
    $scope.messge = '';
    $scope.error = false;
    $scope.incomplete = false;

    $scope.$watch('messge', function () { $scope.test(); });

    $scope.test = function () {
        if ($scope.messge.length > 255) {
            $scope.error = true;
        } else {
            $scope.error = false;
        }
    };
});

第二档:

app.controller("myNoteCtrl", function ($scope) {
    $scope.message = "";
    $scope.left = function () { return 255 - $scope.message.length; };
});

第3档:

var app = angular.module("myNoteApp", []);

我在W3Schools中找到了这些代码,Altough我似乎无法禁用该按钮。任何人都可以帮助我吗?如果有一种更简单的方法可以将它们组合在1个文件中,那就太棒了。如果你仍然不明白我的意思,那就告诉我,并试着以更好的方式探索它。 TL; DR:我想在textarea文本长度大于255时禁用按钮。

1 个答案:

答案 0 :(得分:5)

你可以在html中使用角度表达式来完成所有这些:

<tr>
    <td colspan="2" align="center">
        <textarea rows="5" cols="40" name="Messge" ng-model="message"></textarea>
    </td>
</tr>
<tr>
    <td align="center">Number of letters left: {{255 - message.length}}
    </td>
</tr>
<tr>
    <td align="center" colspan="2">
        <input type="submit" value="submit" ng-disabled="message.length > 255" />
    </td>
</tr>

请注意我是如何摆脱left()函数并将其替换为角度表达式。这意味着您实际上可以删除所有js文件(或至少与此相关的所有文件)。