jQuery: Checking for disabled attribute and adding/removing it?

attributes, forms, jquery, serialization

Solution

Assuming you are using jQuery 1.6 or above, the suggested method is to use .prop().

`fields.prop("disabled", false);`

If you need to have logic around each one, you could do something to the extent of

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

Problem

I select all input elements of a form like this: ``` var fields = $( form + " :input" ).not( "button" ); ``` How do I check if any of these inputs has the `disabled` attribute set and remove it when present? Also, I need to add it after is has been removed (and serialize the fields in between), is there an elegant way for this? Something like `toggle` but for attributes?

Original source