2012-01-03 25 views
19

ho usato per legare evento al mio pulsante mi piace:jQuery per disabilitare il pulsante non funziona

$("input[name=add]").live("click",function(){...}); 

ma ho avuto un'altra funzione per renderli "Attiva" e "disattivato", come:

RefreshBox() { 

    $("input[name=add]").each(function(){ 
     if(...) 
      $(this).attr("disabled","disabled"); 
     else 
      $(this).attr("disabled",""); 
    }) 

} 

Ma in realtà non funziona come mi aspettavo. I pulsanti sono ancora possono essere clic e l'evento funziona ancora senza intoppi.

PS: jQuery 1.4.1 browser: IE8, dopo aver disattivato il pulsante ancora in grado di lavorare. Browser: Chrome, pulsante disabilitato successo.

+0

ciò che è 'se (...)'? –

+0

Quale versione di jQuery stai usando? –

+0

Non riesco a riprodurre questo problema. Vedi http://jsfiddle.net/liho1eye/yfA8d/ per il codice di esempio. Sospetto che tu non stia utilizzando il selettore corretto o che il tuo codice di disabilitazione non venga chiamato. –

risposta

44

Ti consigliamo di utilizzare la funzione prop invece di attr:

$(this).prop("disabled", true); 

e

$(this).prop("disabled", false); 

EDIT

OP stava usando jQuery pre 1.6.1, che è stato perché attr per disabled non funzionava correttamente (per IE precedente). Mentre prop è preferito per disabled, il post 1.6.1 attr dovrebbe (e funziona) anche.

+0

+1 Mi hai battuto. –

+1

Non è disattivato anche un attributo? Per esempio. 'disabled =" disabled "' – PeeHaa

+0

Se sto leggendo la domanda correttamente, il suo problema è che non può disabilitare il pulsante, non riabilitare. –

5

Prova $("input[type=submit]").removeAttr("disabled"); per abilitare il pulsante.

+0

Non il problema che l'OP sta descrivendo. –

+0

Intendo che il pulsante può ancora essere cliccato dopo averlo disabilitato con il codice $ .attr ("disabled", "disabled"); – Ericpoon

3

È possibile impostare l'attributo di 'disabile' false utilizzando:

$("input[name='add']").attr("disabled","disabled"); 
Problemi correlati