22

我选择这样一个表单的所有输入元素:

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

如何检查这些输入中的任何一个是否disabled设置了属性并在存在时将其删除?

另外,我需要在删除它之后添加它(并序列化其间的字段),有没有一种优雅的方法?toggle除了属性之外的东西吗?

4

4 回答 4

53

假设您使用的是 jQuery 1.6 或更高版本,建议的方法是使用.prop()

fields.prop("disabled", false);

如果你需要围绕每一个逻辑,你可以做一些事情到

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

于 2013-02-16T18:54:30.280 回答
2

您可以使用disabled选择器

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

这里

http://jsfiddle.net/JngR9/

于 2013-02-16T18:59:48.760 回答
1

使用:禁用选择器`试试这个

$('input:disabled').remove();
于 2013-02-16T18:58:53.860 回答
1

去除

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

或者

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

添加

$('input:disabled').prop('disabled', 'disabled');
于 2015-07-10T16:14:30.753 回答