Javascript AngularJS验证-文本区域上的最小长度

Javascript AngularJS验证-文本区域上的最小长度,javascript,angularjs,validation,Javascript,Angularjs,Validation,我正在从事一个项目,其中AngularJS被大量用于前端。以下是我所拥有的: 我想要的验证规则如下所示: 除非输入的原因至少为10个字符,否则应禁用Next按钮 此外,我希望能够告诉用户在提交之前还有多少个字符。这将出现在文本区域的右下角 代码: <form name="paymentForm"> <div class="form-group" id="Div2"> <select ng-model="selectedPaymentStat

我正在从事一个项目,其中AngularJS被大量用于前端。以下是我所拥有的:

我想要的验证规则如下所示:

除非输入的原因至少为10个字符,否则应禁用
Next
按钮

此外,我希望能够告诉用户在提交之前还有多少个字符。这将出现在文本区域的右下角

代码:

<form name="paymentForm">
    <div class="form-group" id="Div2">
        <select ng-model="selectedPaymentStatus" ng-options="ps.name for ps in paymentStatus"></select>
    </div><!-- .form_group -->

    <div ng-show="selectedPaymentStatus.value === 'paymentDeferred'" class="form-group" id="Div3">
        <p>Reason</p>
        <textarea class="form-control" ng-model="crate.paymentDeferredReason" ng-minlength="10"></textarea>
    </div><!-- .form_group -->
</form>

<button class="btn wizard-next-btn pull-right" ng-disabled="paymentForm.$valid" ng-click="nextStep()">Next</button>
<button class="btn wizard-back-btn" ng-click="previousStep()">Back</button>

理由

下一个 返回

由于某些原因,上面的代码不起作用!即使我键入一个字符,“下一步”按钮也会启用

您需要进行两项更正:

  • ng disabled=“paymentForm.$valid”
    实际上应该是
    ng disabled=“paymentForm.$invalid”
  • ng required=“true”
    添加到
    ;否则,
    ng minlength
    似乎对空字段无效
  • 另外,在表单外部的按钮似乎工作正常,但我建议不要使用它;我有一种感觉,它不会在所有情况下都起作用(但目前无法证明:)


    相关小提琴:

    您已禁用
    ng=“paymentForm.$valid”
    ;应该是相反的。此外,您确定这将与表单外的按钮一起工作吗?该按钮似乎在表单外工作;对上述内容的一个小修改:您还需要指定
    ng required=“true”
    以使空字段无效;否则,
    ng minlength
    似乎对空字段无效。谢谢@NikosParaskevopoulos你能回答吗?你的建议解决了这个问题