2013-02-16 16 views
12

seleziono tutti gli elementi di ingresso di un modulo come questo:jQuery: controllo dell'attributo disabilitato e aggiunta/rimozione?

var fields = $(form + " :input").not("button"); 

Come si verifica se uno qualsiasi di questi ingressi ha l'attributo disabled impostare e rimuoverlo quando presenti?

Inoltre, ho bisogno di aggiungerlo dopo è stato rimosso (e serializzare i campi in mezzo), c'è un modo elegante per questo? Qualcosa come toggle ma per gli attributi?

risposta

39

Supponendo che si stia utilizzando jQuery 1.6 o successivo, il metodo consigliato è utilizzare .prop().

fields.prop("disabled", false);

Se avete bisogno di avere la logica attorno ad ogni uno, si potrebbe fare qualcosa per quanto di

var fields = $(form + " :input").not("button"); 
fields.each(function(index, element) { 
    var isDisabled = $(element).is(':disabled'); 
    if (isDisabled) { 
     $(element).prop('disabled', false); 
    } else { 
     // Handle input is not disabled 
    } 
}); 

jsfiddle

0

rimuovere

$('input:disabled').removeProp('disabled'); 

o

$('input:disabled').prop('disabled', 'disabled'); 

Aggiungere

$('input:disabled').prop('disabled', 'disabled'); 
Problemi correlati