jQuery: Checking for disabled attribute and adding

2020-06-07 06:51发布

问题:

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?

回答1:

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



回答2:

You can use the disabled selector

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

See here

http://jsfiddle.net/JngR9/



回答3:

use :disabled Selector` try this

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


回答4:

To Remove

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

or

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

To Add

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