我必须首先禁用输入,然后单击链接启用它们。

这是我迄今为止尝试过的方法,但行不通。

HTML:

<input type="text" disabled="disabled" class="inputDisabled" value="">

jQuery:

$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').removeAttr("disabled")
});

这显示了true和false,但输入没有任何变化:

$("#edit").click(function(event){
   alert('');
   event.preventDefault();
   alert($('.inputDisabled').attr('disabled'));
   $('.inputDisabled').removeAttr("disabled");
   alert($('.inputDisabled').attr('disabled'));
});

当前回答

尝试特殊的选择器:

不工作:$('#ID_Unit').removeAttr("disabled"); Works: $('select[id=ID_Unit]:disabled').removeAttr("disabled");

所有“select”控件$('select:disabled').removeAttr("disabled");

“select”是控制类型,就像“type”一样。

其他回答

认为这可以很容易地设置

$(function(){
$("input[name^=radio_share]").click
(
    function()
    {
        if($(this).attr("id")=="radio_share_dependent")
        {
            $(".share_dependent_block input, .share_dependent_block select").prop("disabled",false);   
        }
        else
        {
            $(".share_dependent_block input, .share_dependent_block select").prop("disabled",true);   
        }
    }
 );
});

尝试特殊的选择器:

不工作:$('#ID_Unit').removeAttr("disabled"); Works: $('select[id=ID_Unit]:disabled').removeAttr("disabled");

所有“select”控件$('select:disabled').removeAttr("disabled");

“select”是控制类型,就像“type”一样。

2018,没有JQuery

我知道这个问题是关于JQuery的:这个答案只是供参考。

document.getElementById('edit').addEventListener(event => {
    event.preventDefault();
    [...document.querySelectorAll('.inputDisabled')].map(e => e.disabled = false);
}); 

这是唯一适用于我的代码:

element.removeProp('disabled')

注意,它是removeProp而不是removeAttr。

这里我使用的是jQuery 2.1.3。

用于删除禁用属性

 $('#inputDisabled').removeAttr('Disabled');

用于添加禁用属性

 $('#inputDisabled').attr('disabled', 'disabled' );