31

I can't seem to get removeAttr to work, I'm using the example I saw on the jQuery site. Basically onclick I add the attribute to disable a field (which works just fine) but when the user clicks again it should enable the field in question. I used alerts to make sure the else block is being fired, so I know that's not it.

Code:

$('#WindowOpen').click(function (event) {
  event.preventDefault();
  $('#forgot_pw').slideToggle(600);

  if('#forgot_pw') {
    $('#login_uname, #login_pass').attr('disabled','disabled');
  } else {
    $('#login_uname, #login_pass').removeAttr('disabled');
  }
});

Thanks.

3
  • 1
    if('#forgot_pw') will always run. I'm guessing this is a typo? Commented Nov 23, 2009 at 18:40
  • 2
    For future reference, jQuery recommends using the .prop() method (api.jquery.com/prop) when getting and setting input properties like disabled. It's more cross browser friendly depending on the version of jQuery you use and what browser your users navigate with. Commented Mar 9, 2012 at 17:36
  • 1
    possible duplicate of Remove disabled attribute using JQuery? Commented Apr 29, 2014 at 13:01

3 Answers 3

38

All good used this:

$('#WindowOpen').toggle(
    function()
    {
        $('#login_uname, #login_pass').attr("disabled","disabled");     
    },
    function()
    {
        $('#login_uname, #login_pass').removeAttr("disabled");      
    });
Sign up to request clarification or add additional context in comments.

Comments

7

Your problem is that the following line of code will always evaluate to true.

if('#forgot_pw')

try replacing with

if($('#forgot_pw').attr('disabled'))

1 Comment

Same problem, I get it to disable but not re-enable.
4
$('#forgot_pw').attr('disabled', false);

should work for you.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.