Najlepší spôsob, ako zakázať tlačidlo v Twitter's Bootstrap

Som zmätený, keď ide o vypnutie prvku <button>, <input> alebo <a> s triedami: .btn alebo .btn-primary, pomocou JavaScriptu/jQuery.

Použil som na to nasledujúci úryvok:

$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);

Takže ak môjmu prvku poskytnem len $('button').addClass('btn-disabled');, vizuálne sa bude javiť ako vypnutý, ale jeho funkčnosť zostane rovnaká a napriek tomu bude klikateľný, takže to je dôvod, prečo som do prvku pridal nastavenia attr a prop.

Vyskytol sa u niekoho rovnaký problém? Je to správny spôsob, ako to urobiť - pri použití Twitter's Bootstrap?

Riešenie

Potrebujete len časť $('button').prop('disabled', true);, tlačidlo automaticky prevezme triedu disabled.

Komentáre (7)

Najjednoduchší spôsob, ako to urobiť, je použiť atribút disabled, ako ste to urobili vo svojej pôvodnej otázke:

Obsah tlačidla

Twitter Bootstrap zatiaľ'nemá metódu na vypnutie funkcie tlačidla'bez použitia atribútu disabled.

Napriek tomu by to bola vynikajúca funkcia, ktorú by mohli implementovať do svojej javascriptovej knižnice.

Komentáre (3)

Akýkoľvek atribút je pridaný k tlačidlu/ukotveniu/odkazu, aby ho zakázal, bootstrap mu len pridá štýl a používateľ naň bude môcť kliknúť, kým bude existovať udalosť onclick. Takže mojím jednoduchým riešením je skontrolovať, či je vypnuté, a odstrániť/pridať udalosť onclick:

if (!('#button').hasAttr('disabled'))
 $('#button').attr('onclick', 'someFunction();');
else
 $('#button').removeattr('onclick');
Komentáre (3)