2013-02-16 9 views
12

mogę wybrać wszystkie elementy wejściowe formie tak:jQuery: Sprawdzanie wyłączonego atrybutu i dodawanie/usuwanie go?

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

Jak mogę sprawdzić, czy któryś z tych wejść posiada atrybut disabled ustawić i usunąć go, gdy jest obecny?

Muszę dodać to, po usunięciu (i serializacji pól pomiędzy), czy istnieje na to elegancka metoda? Coś jak toggle, ale dla atrybutów?

Odpowiedz

39

Zakładając, że używasz jQuery w wersji 1.6 lub nowszej, sugerowaną metodą jest użycie .prop().

fields.prop("disabled", false);

Jeśli trzeba mieć logikę wokół każdego z nich, można zrobić coś do tego stopnia

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

usunąć

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

lub

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

Aby dodać

$('input:disabled').prop('disabled', 'disabled'); 
Powiązane problemy