启用所有已禁用的输入和选择元素

3
在提交表单之前,我希望启用所有被禁用的输入和选择元素,以便获取所有被禁用元素的值。
所以我尝试了:
function enable() {

        $('input[type="text"], input[type="checkbox"], select').prop("disabled", true).each(function () {

            if ($(this).is(':disabled')) {
                $(this).attr('disabled', false);
            }

        });
    }

这段代码无法正常工作,你能帮我解决一下吗?

提前感谢您的帮助...


$('input[type="text"], input[type="checkbox"], select').removeProp('disabled') - undefined
不,它没有起作用。 - undefined
4个回答

12

3

试试这个:

function enable() {
    $('input[type="text"], input[type="checkbox"], select').each(function () {
       if ($(this).prop('disabled')) {
           $(this).prop('disabled',false);
       }
    });
}

或者,您可以启用所有被禁用的元素,而无需使用each(),例如:

$('input[type="text"]:disabled, input[type="checkbox"]:disabled, select:disabled')
          .prop('disabled',false);

或者使用removeAttr(),类似于:

$('input[type="text"]:disabled, input[type="checkbox"]:disabled, select:disabled')
          .removeAttr('disabled');

2
$(this).removeAttr('disabled');

0
使用prop而不是attr,.prop()方法提供了一种显式检索属性值的方式,而.attr()则用于检索属性。
 $(this).prop('disabled',false);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接