2014-07-24 27 views
2

我試圖禁用啓用基於輸入類型值的按鈕。這裏是角JS的HTML代碼AngularJS:ng-disable不工作

<div ng-app> 
    <form name="myForm" ng-controller="ctrl"> 
     <input type="text" ng-model="name" ng-required="true" /> 
     <span>{{name}}</span> 
     <input type="submit" value="Submit" ng-disabled="myForm.name.$pristine" /> 
    </form> 
</div> 

而控制器代碼:

function ctrl($scope){ 
    $scope.name = "hello"; 
} 

但按鈕是沒有得到禁用不管。

這裏是DEMO

注:我想按鈕被禁用,只有當文本框中沒有任何價值,反之亦然

+0

NG-禁用= 「!名」 也能正常工作 –

回答

7

試試這個

<input type="submit" value="Submit" ng-disabled="name==undefined || name==''" /> 

希望它可以幫助.....................

+1

ng-disabled =「!name」也可以正常工作 –

5

你輸入需要和name工作。

<input type="text" ng-model="name" ng-required="true" name='myName' ng-model='myName'/>

見我的小提琴這裏

http://jsfiddle.net/cmyworld/6Zjd3/1/

+0

*它不工作*在該演示似乎被禁用,無論輸入文本是否有價值。我試圖讓它禁用當文本框中沒有數據,反之亦然 – iJade

+0

對不起我的壞小提琴已被更新http://jsfiddle.net/cmyworld/6Zjd3/1/ – Chandermani

+0

我應用指令提交沒有輸入文本框。 – Chandermani

0

固定爲您

你指的name這不存在的,因爲它是輸入ID /名稱

<input id="name" name="name" type="text" ng-model="name" ng-required="true" /> 

http://jsfiddle.net/rE8p9/1/

0

添加 'NAME' 屬性輸入,這是解決問題

<div ng-app> 
<form name="form" ng-controller="ctrl"> 
    <input type="text" name="name" ng-model="name" ng-required="true" /> 
    <span>{{name}}</span> 
    <input type="submit" value="Submit" ng-disabled="form.name.$pristine" /> 
</form> 
</div> 

jsfiddle.net/ariel_ma/GYt3y/1/

0

myForm.name是指與name屬性設置爲 「名」 的第一控制。既然你沒有一個,它就是指形式name屬性本身,返回「myForm」。 "myForm".$pristine未定義,因此ng-disabled=undefined將不起作用。

正如其他人提到的,您需要將name="name"屬性添加到它應該引用的控件。

<input type="text" name="name" ng-model="name" ng-required="true" /> 
0

更改了您的代碼。

<div ng-app> <form name="myForm" ng-controller="ctrl"> 
<input type="text" ng-model="name" ng-required="true" /> 
<span>{{name}}</span> 
<input type="submit" value="Submit" name='myName' ng-model='name' ng-disabled="!myForm.$pristine" /> </form> </div> 

(注意否定)。

你甚至可以使用「myForm。$ invalid」。 ng-disabled期望一個bool值/表達式返回bool。

換句話說,它讀取布爾值。

0

試試這個,也許它會工作.. 。

< input type="search" ng-required="true" placeholder="username to find" ng-model="username" /> 
< input type="submit" value="search" ng-disabled="!username" /> 
2
<div ng-app> 
<form name="myForm" ng-controller="ctrl"> 
    <input type="text" ng-model="name" ng-required="true" /> 
    <span>{{name}}</span> 
    <input type="submit" value="Submit" ng-disabled="{{myForm.name.$pristine}}" /> 
</form> 

替換:

ng-disabled="myForm.name.$pristine" 

帶:

ng-disabled="{{myForm.name.$pristine}}" 
+0

這解決了我的問題,即使大家都說要刪除方括號內的角度指令 –