0

我想在提交表单之前启用所有禁用的输入并选择元素,以便我可以获得所有禁用的元素值。

所以我尝试了

function enable() {

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

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

        });
    }

此代码不起作用,请您帮我完成这项工作。

提前致谢....

4

4 回答 4

9

你可以试试

function enable() {
    $('input:disabled, select:disabled').each(function () {
       $(this).removeAttr('disabled');
    });
}

http://api.jquery.com/disabled-selector/

于 2013-06-25T05:42:04.810 回答
3

尝试这个,

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

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

$('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');
于 2013-06-25T05:29:57.530 回答
2
$(this).removeAttr('disabled');
于 2013-06-25T05:32:01.443 回答
0

使用 prop 而不是 attr,.prop() 方法提供了一种显式检索属性值的方法,而 .attr() 检索属性。

 $(this).prop('disabled',false);
于 2013-06-25T05:34:43.530 回答