Solved

Dropdown disable not working in JQuery or Javascript

Posted on 2013-12-05
6
909 Views
Last Modified: 2013-12-06
I have a JavaScript function that used to work until upgrading to IE 11.  It also doesn't work in either Chrome or FireFox.  

The dropdown is disabled by default, but enabled when a checkbox is changed.

As you can see from the code, I've tried removeAttribute, disabled = false, and finally JQuery.  None seems to be enabling the dropdown.  The alerts show the correct attributes, but in the source it still shows disabled='disabled'.

Any help would be greatly appreciated.

Here's the javascript/JQuery:

        function enableDropDownList(cb) {
            var chkbx = document.getElementById(cb);
            var number = cb.match(justTheDigits);
            var ddlname = "gvCylinderInfo_ctl" + number + "_ddlQtyReassign";
            var ddl = document.getElementById(ddlname);
            //ddl.setAttribute('disabled', 'disabled');
                    alert(ddl.disabled);  //This shows up as 'true'
            if (chkbx.checked) {
                $(ddl).each(function () {
                    this.disabled = false;
                });
                    alert(ddl.disabled);  //This shows up as 'false' - just what I want.
                //ddl.removeAttribute('disabled');
                //ddl.disabled = false;
                document.getElementById('selectCylsPrompt').style.display = 'none';
                document.getElementById('chooseC').style.display = 'block';

            }
            else {
                ddl.disabled = true;
                document.getElementById('selectCylsPrompt').style.display = 'block';
                document.getElementById('chooseC').style.display = 'none';
            }

            enableModify();
        }

Open in new window

When I view source it shows:

<select name="ddlSystem" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ddlSystem\&#39;,\&#39;\&#39;)&#39;, 0)" disabled="disabled" id="ddlSystem" class="arial8ptBlack">

Still disabled.

Any ideas?  Thanks.
0
Comment
Question by:IKtech
  • 3
  • 2
6 Comments
 
LVL 82

Accepted Solution

by:
leakim971 earned 500 total points
ID: 39699697
Test page : http://jsfiddle.net/98EjC/

I see : var ddlname = "gvCylinderInfo_ctl" + number + "_ddlQtyReassign";
By you dropdown ID is just : ddlSystem

$("#ddlSystem").removeAttr("disabled");
0
 
LVL 9

Expert Comment

by:Sar1973
ID: 39700642
In JS you must set a true/false boolean value, such as: document.getElementById("myDropdown").disabled=true/false.
Try then to replace disabled="disabled" with disabled="true".
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39700658
@Sar1973 :
Without jQuery the RIGHT way is to use setAttribute() and removeAttribute()

https://developer.mozilla.org/en-US/docs/DOM/element.setAttribute
https://developer.mozilla.org/en-US/docs/DOM/element.removeAttribute
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 9

Expert Comment

by:Sar1973
ID: 39700666
0
 
LVL 82

Expert Comment

by:leakim971
ID: 39700684
@Sar1973

That will NOT work everytime
Be very careful with W3School resources
0
 
LVL 3

Author Closing Comment

by:IKtech
ID: 39701162
This was only part of it.  There were a few elements disabled.  I just needed to find all of them and do a removeAttribute.

Thanks!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Requirements JQuery 1.6+ HTML CSS Introduction This article was inspired by an EE question (http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28372511.html) on how to make a page show some balloons animate up a page…
How to build a simple, quick and effective accordion menu using just 15 lines of jQuery and 2 css classes
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

943 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now