How to enable a disabled text field?

84,965

Solution 1

To access this element in a more standard way, use document.getElementById with setAttribute

document.getElementById("field07").setAttribute("disabled", false);

EDIT

Based on your comment, it looks like field07 is a name, not an id. As such, this should be what you want:

var allfield7s = document.getElementsByName("field07");
for (var i = 0; i < allfield7s.length; i++)
    allfield7s[i].setAttribute("disabled", false);

Solution 2

That is the only working solution for Me:

var allfield7s = document.getElementsByName("field07");
for (var i = 0; i < allfield7s.length; i++)
    allfield7s[i].removeAttribute("disabled");

Solution 3

You can enable a disabled html control with the following JavaScript code.

document.getElementById('elementId').removeAttribute('disabled');

Solution 4

You can also do this with jQuery:

$(function(){
    $("[name='field07']").prop("disabled", false);
});

We simply select all the elements where the name attribute is field07 (using name because you said so in the comments of @AdamRackis's answer) and set its disabled property to false.

More about prop().

Solution 5

You can enable a disabled html control(like, input, textarea, button,...) with the help following code.

To disable:

document.getElementById("id_name").setAttribute("disabled", true);

To enable:

document.getElementById('id_name').removeAttribute('disabled');
Share:
84,965
Hassan Z
Author by

Hassan Z

Updated on July 29, 2020

Comments

  • Hassan Z
    Hassan Z almost 4 years

    I wanna know how do I enable a disabled form text field on submit. Also I wanna make sure if user goes back to form or click reset field will show again as disabled.

    I tried to use

    document.pizza.field07.disabled = false ;
    

    It does disables the field, by clicking reset or hitting back button still keeps it enable.

    Please guide.

  • Hassan Z
    Hassan Z over 12 years
    I tried 'this:document.getElementsByName("field07").setAttribute("di‌​sabled", false);' but its not working.... field07 is name...
  • RobG
    RobG over 12 years
    Don't bother with buggy setAttribute, just set the property directly: allfield7s[i].disabled = false;
  • Adam Rackis
    Adam Rackis over 12 years
    @Rob - I thought setAttribute was widely supported?
  • Tim Down
    Tim Down over 12 years
    @AdamRackis: It is widely supported, but the property is simpler, just as standard, better supported and more readable.
  • RobG
    RobG over 12 years
    @AdamRackis—it's widely supported, but implementations are inconsistent. Google "javascript setattribute issues IE".
  • Adam Rackis
    Adam Rackis over 12 years
    Thanks @TimDown - didn't realize setAttribute wasn't perfectly supported
  • merours
    merours almost 10 years
    Could you please add a link to the relevant documentation ?
  • Kenton de Jong
    Kenton de Jong over 6 years
    While this works, I downvoted it because using a third party library to change the attribute value of an element is not needed.
  • Matt West
    Matt West over 5 years
    This is the best answer. Setting disabled to false per the accepted answer will just change the attribute to 'disabled = false' and the element will remain disabled.
  • phrogg
    phrogg over 5 years
    On my Browser Firefox setattribute didn't work. So I used @RobG 's solution.