2017-04-06 105 views
1

我試圖啓用一個按鈕,只有當我的輸入被填充至少18個字符。這裏是HTML代碼:Angularjs ng-disabled無法正常工作

<form id="frm.frmEntidade" name="frm.frmEntidade"> 
    <div> 
    <input type="text" ng-model="entidade.cnpj" id="cnpjEntidade" name="cnpjEntidade" required /> 
    <span class="input-group-btn"> 
     <button title="Buscar Entidade" class="btn btn-primary" 
       type="button" ng-click="buscarEntidade(entidade.cnpj)" ng- 
       disabled="frm.frmEntidade.cnpjEntidade.lenght !== 18"> 
       <span class="glyphicon glyphicon-search"></span> 
     </button> 
    </div> 
</form> 

但按鈕保持禁用,任何人都可以幫忙嗎?

+1

嘗試'NG-禁用= 「entidade.cnpj.lenght!== 18」' –

+2

只是建議,你說' 「有至少18個字符......」 ',那麼你應該使用'> = 18' – anoop

回答

2

對於單詞length有錯字錯誤。更改:

<button [...] 
     ng-disabled="frm.frmEntidade.cnpjEntidade.lenght !== 18"> 

要:

<button [...] 
     ng-disabled="frm.frmEntidade.cnpjEntidade.length !== 18"> 

作爲一個側面說明,此條件檢查如果是從18 不同,不若 「輸入填充有至少18個字符」。

+0

我沒有讓自己清楚,它是一個掩碼爲「00.000.000/0000-00」的文檔,我想要啓用按鈕,如果用戶鍵入完全按這種方式 – Burghi

0

嘗試ng-disabled="entidade.cnpj.length!=18"

0

這對錶單驗證更好地利用ng-minlength。通過檢查$valid您可以啓用或禁用按鈕

<form id="frm.frmEntidade" name="frm.frmEntidade"> 
<input type="text" ng-model="entidade.cnpj" id="cnpjEntidade" name="cnpjEntidade" required ng-minlength="18" /> 
    <span class="input-group-btn"> 
     <button title="Buscar Entidade" class="btn btn-primary" 
      type="button" ng-click="buscarEntidade(entidade.cnpj)" 
      ng-disabled="!frm.frmEntidade.$valid"> 
      <span class="glyphicon glyphicon-search"></span> 
      Button 
       </button> 
    </span> 
</form>