Sunt confuz când vine vorba de dezactivarea o <butonul>
, <input> " sau " <a> element cu clasele:
.btn "sau".btn-primar`, cu JavaScript/jQuery.
Am folosit următorul fragment pentru a face asta:
$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);
Deci, dacă am oferi doar $('butonul').addClass('btn-dezactivat');
pentru elementul meu, acesta va apărea ca fiind dezactivată, vizual, dar funcționalitatea va rămâne același și va fi clickable nontheless, astfel încât acesta este motivul de ce am adăugat atră " și " prop
setări pentru a elementului.
Are cineva expirenced aceeași problemă acolo? Este corect acest mod de a face acest lucru - în timp ce utilizați Twitter's Bootstrap?
Clădirea de pe jeroenk's a răspunde, aici's rundown:
$('button').addClass('disabled'); // Disables visually
$('button').prop('disabled', true); // Disables visually + functionally
$('input[type=button]').addClass('disabled'); // Disables visually
$('input[type=button]').prop('disabled', true); // Disables visually + functionally
$('a').addClass('disabled'); // Disables visually
$('a').prop('disabled', true); // Does nothing
$('a').attr('disabled', 'disabled'); // Disables visually
A se vedea vioară
Cel mai simplu mod de a face acest lucru, este de a folosi "handicap" atribut, așa cum ai făcut în original întrebare:
<buton class="btn btn-dezactivat" cu handicap>Conținut de Butonul</butonul>
Ca de acum, Twitter Bootstrap nu't au o metodă de a dezactiva un buton's funcționalitate fără a utiliza "handicap" atribut.
Cu toate acestea, acest lucru ar fi o caracteristică excelent pentru ei să pună în aplicare în bibliotecă javascript.
<div class="bs-example">
<button class="btn btn-success btn-lg" type="button">Active</button>
<button class="btn btn-success disabled" type="button">Disabled</button>
</div>
Ce s-a atribut este adăugat la butonul/de ancorare/link-ul pentru a o dezactiva, bootstrap este doar adăugând stil și utilizatorul va putea încă să faceți clic pe ea în timp ce există încă onclick eveniment. Deci, mea simplă soluție este de a verifica dacă acesta este dezactivat și elimina/adauga onclick eveniment:
if (!('#button').hasAttr('disabled'))
$('#button').attr('onclick', 'someFunction();');
else
$('#button').removeattr('onclick');