ng-disabled不适用于多个输入

时间:2017-10-24 16:59:46

标签: html angularjs

我有以下html表单

<form name="enviarAutorizacao" id="enviarAutorizacao" novalidate>
  <label class="form-label-gray">autorization</label>
  <input class="form-control col-sm-6" ng-model="current.autorizacao" id="autorizacao" ui-mask="" maxlength="20" required>
  <div class="form-group col-sm-8">
    <label class="form-label-gray"> Value </label>
    <div class="form-group col-sm-2 form-label-gray">
      <label>$</label>
    </div>
    <div class="form-group col-sm-9">
       <input class="form-control" maxlength="16" ng-model="current.valor" required id="valor">
    </div>
  </div>
  <div class="form-group col-sm-12">
    <button class="btn btn-default" ng-disabled="enviarAutorizacao.$invalid || enviarAutorizacao.$pristine" id="submit-representante-estabelecimento" ng-click="validateAssociate()">click me</button>
  </div> 
</form>

我正在尝试启用提交按钮,仅当填充了2个输入时,但是当我输入第一个输入(autorizacao)时它正在启用。

我尝试了一些替代方案,例如更改&#34; ng-disabled =&#34; enviarAutorizacao。$ invalid&#34; to&#34; ng-disabled =&#34;!enviarAutorizacao。$ valid&#34;,但没有用。

这个html出了什么问题?

2 个答案:

答案 0 :(得分:1)

如果您使用enviarAutorizacao.autorizacao.$invalid,您将知道“autorizacao”输入是否无效。

[form id].[input name].[$valid or $invalid or $dirty...]

所以你的代码应该是这样的: 我更改了输入的名称并提交了ng-disabled

<form name="enviarAutorizacao" id="enviarAutorizacao" novalidate>
  <label class="form-label-gray">autorization</label>
  <input class="form-control col-sm-6" ng-model="current.autorizacao" id="autorizacao" ui-mask="" maxlength="20" name="autorizacao" required>
  <div class="form-group col-sm-8">
    <label class="form-label-gray"> Value </label>
    <div class="form-group col-sm-2 form-label-gray">
      <label>$</label>
    </div>
    <div class="form-group col-sm-9">
       <input class="form-control" maxlength="16" ng-model="current.valor" required id="valor" name="valor">
    </div>
  </div>
  <div class="form-group col-sm-12">
    <button class="btn btn-default" ng-disabled="enviarAutorizacao.autorizacao.$invalid || enviarAutorizacao.valor.$invalid" id="submit-representante-estabelecimento" ng-click="validateAssociate()">click me</button>
  </div> 
</form>

答案 1 :(得分:-2)

尝试单独使用实际输入的ID作为禁用ng的参数。

或者你可以检查current.autorizacao和current.valor的有效性并使用它们。

相关问题