2015-07-03 13 views
14

Ben bu button:ng devre dışıyken CSS nasıl değiştirilir?

<input type="submit" value="@Translator.Translate("PAYOUT")" 
    class="btn-block secondary-button save-changes padding-8" 
    ng-disabled="PayoutEnabled==false" ng-click="PayOut()" /> 

Ama bu sadece tıklanamıyorsa, Etkinleştirildiğinden aynı class sahiptir etkisiz hale bile. Devre dışı bırakıldığında arka planı değiştirmek istiyorum, böylece kullanıcı bu düğmeyi görebilir, devre dışı bırakılabilir. Bunu nasıl yapabilirim? Bazı ng-disabled CSS sınıfına mı ihtiyacım var yoksa başka bir yolu var mı?

cevap

15

kullanım ng-class

<input type="submit" value="@Translator.Translate("PAYOUT")" class="btn-block 
secondary-button save-changes padding-8" ng-disabled="PayoutEnabled==false" 
ng-click="PayOut()" ng-class="{'diabled-class': !PayoutEnabled}" /> 

PayoutEnabledfalse olduğunda bu girişe css sınıfını diabled-class katacak (! PayoutEnabled geçerlidir).

+1

bunu denedim ama yine aynı sınıfı aldım – None

+0

benim için çalıştı teşekkürler – neverwinter

33

@KToress'in yanıtı iyi olmalı, ancak AngularJS'nin yardımına ihtiyacınız yok. Zaten bir sınıfınız olduğu için düz CSS'den yararlanabilirsiniz. Örnek:

input.save-changes { 
    // some style when the element is active 
} 

input.save-changes[disabled] { 
    // styles when the element is disabled 
    background-color: #ddd; 
} 

Düzenleme: hemen StackOverflow bu sayfada test edebilirsiniz. Sadece elemanı kontrol edin ve Mavi düğmeye disabled özniteliğini koyun ve CSS'yi görün.

.save-changes { 
 
    background-color: red; 
 
    padding: 7px 13px; 
 
    color: white; 
 
    border: 1px solid red; 
 
    font-weight: bold; 
 
} 
 
.save-changes[disabled] { 
 
    background-color: #FF85A1 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app ng-init="PayoutEnabled = true"> 
 
    <a href="#" ng-click="PayoutEnabled = !PayoutEnabled"> 
 
    {{PayoutEnabled ? 'Disable' : 'Enable'}} the below button</a> 
 
    <br> 
 
    <br> 
 

 
    <input class="save-changes" type="submit" value="PAYOUT" ng-disabled="PayoutEnabled == false" /> 
 
</div>

+1

Bu benim için çalışmanın cevabı. Ng-disabled = "disabled" i html ve i.fa-refresh [devre dışı] {color: #ccc; CSS – Phil

+0

benim içine Bu memnun oldum! –

+1

onaylandı. ilk çözüm benim için çalışmadı. Bu –

8

angularjs sözde sınıf ekler engelling özürlü yüzden burada düşünmek engelli düğmeye başvurmak için en basit çözümdür yanlış olduğunda:

button:disabled { 
    color:#717782; 
} 
+0

yaptı Bazı yorum eklemek ve sadece orada kod atmak için en iyisidir. –

+0

Doğru, sadece IE8 ve daha düşük için çalışmayacağından bahsetmeye değer, birçok kişi hala bunları kullanıyor. –

+0

Çözüm için teşekkürler. 2018 yılında IMHO, IE8 desteğini atlayabiliriz. Fakat şunu kullanarak: [devre dışı] üzerinden devre dışı bırakılsın mı? Hangi çözüm daha temiz ve neden? – jaheraho

İlgili konular