2010-09-17 13 views
26

Quando faccio clic su un pulsante ui jquery, viene comunque attivato il richiamo dell'evento click. Come posso bloccare quell'evento? Devo tenere traccia manualmente dello stato o jquery ui si occupa di questo per me?Come disabilitare un pulsante jqueryui

+0

Puoi inserire il tuo codice. – jcubic

risposta

33

Prova questo.

$('#button_id').button("disable"); 
$('#button_id').button("enable"); 
+0

Questo è quello che sto facendo, ma continuo a richiamare la chiamata .click(). – ablerman

+0

@ablerman jQueryUI dovrebbe gestirlo correttamente per te. Nel mio esempio locale quando uso '$ ('# button_id'). Button (" disable ")' il gestore .click() non viene attivato per button_id, e quindi viene riattivato correttamente quando chiamo '$ ('# button_id '). button (' enable ') ' – Mattygabe

+0

Faccio questo nel gestore click(): ($ (" # button_id "). button(). attr (" disabled ")) return; – xmedeko

17

secondo la documentazione:

// setter 
$("#button_id").button("option", "disabled", true); 
+0

Quindi, esattamente è possibile init i pulsanti in questo modo: 'apri un $ ("selettore")() \t \t .Click (function() { \t \t \t \t \t se (this.checked) \t \t \t Button: "controllata") ({: \t $ (this) apri un ("opzione", "icone", {secondaria "ui-icon-circle-check"}) \t \t}) \t \t .filter (. icone: {secondarie: "ui-icon-circle-check"}}) \t \t. filtro (": disab led ") pulsante (" opzione "," disabilitato ", vero); \t \t}); ' –

+0

Questo non imposterà la classe disabilitata con lo stato u, quindi il pulsante apparirà comunque abilitato. – spyderman4g63

17

Funziona per me:

$("#button_id").attr("disabled", true).addClass("ui-state-disabled"); 
1

Se si definisce in questo modo:

$("#mybtn").button(); 

è necessario attivare/disattivare come questo :

$("#mybtn").button("enable"); 
// OR 
$("#mybtn").button("disable"); 
Problemi correlati