472,137 Members | 1,551 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,137 software developers and data experts.

Cannot enable disabled controls with client-side javascript

Hi,

I have an aspx page where some controls are initially disabled by the
code-behind 'Page_Load' event. I want these controls to be dynamically
enabled when the user checks a checkbox. Because I don't want a post-back,
I added some javascript to do this

However, using client-side JS, I cannot enable any controls that have been
disabled by server-side code. If the control is initially enabled, I can
disable/enable it client-side.

I'm using the following JS:

document.getElementById("Recursive_chk").disabled = false;

Is this a known problem, or am I doing something wrong?

Thanks,
Stuart

Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+
Nov 17 '05 #1
6 7628
Hi,

I dunno its a better way or not. but i suggest u to make the control disbale
on design time..
input id="cterdate" type="text" maxLength="12" size="20" name="cterdate"
runat="server" disabled

Now you can change the status of the field on page load event on the server
side or onthe client side. that will work ...

Regards

Ahmed

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:#D**************@TK2MSFTNGP10.phx.gbl...
Hi,

I have an aspx page where some controls are initially disabled by the
code-behind 'Page_Load' event. I want these controls to be dynamically
enabled when the user checks a checkbox. Because I don't want a post-back, I added some javascript to do this

However, using client-side JS, I cannot enable any controls that have been
disabled by server-side code. If the control is initially enabled, I can
disable/enable it client-side.

I'm using the following JS:

document.getElementById("Recursive_chk").disabled = false;

Is this a known problem, or am I doing something wrong?

Thanks,
Stuart

Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+

Nov 17 '05 #2
Hi Ahmed,

Thanks for the reply.

Yes, that would work with HTML controls, but I'm trying to enable a disabled
ASP.Net server side control...and thats the problem...

e.g.
<asp:checkbox id="Recursive_chk" style="Z-INDEX: 118; LEFT: 48px; POSITION:
absolute; TOP: 488px" tabIndex="11" runat="server" CssClass="description"
Enabled="False" Text="Recursive">

That checkbox is disabled at design time/code behind, but I can't enable it
using client-side script. And I don't want to revert to using HTML
controls, as its a step backwards. :)

My only other thought is to move the logic for enabling/disabling controls
to the HTML page and have that invoked when the page loads on the client,
but that just sucks!!

Regards,
Stuart

"Ahmed Ali" <ah***@visualsoft-inc.com> wrote in message
news:ur*************@tk2msftngp13.phx.gbl...> Hi,

I dunno its a better way or not. but i suggest u to make the control disbale on design time..
input id="cterdate" type="text" maxLength="12" size="20" name="cterdate"
runat="server" disabled

Now you can change the status of the field on page load event on the server side or onthe client side. that will work ...

Regards

Ahmed

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:#D**************@TK2MSFTNGP10.phx.gbl...
Hi,

I have an aspx page where some controls are initially disabled by the
code-behind 'Page_Load' event. I want these controls to be dynamically
enabled when the user checks a checkbox. Because I don't want a

post-back,
I added some javascript to do this

However, using client-side JS, I cannot enable any controls that have been disabled by server-side code. If the control is initially enabled, I can disable/enable it client-side.

I'm using the following JS:

document.getElementById("Recursive_chk").disabled = false;

Is this a known problem, or am I doing something wrong?

Thanks,
Stuart

Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+


Nov 17 '05 #3
Stu,

How does Recursive_chk render on the client? Could you show us the resulting
HTML?
--
John Saunders
Internet Engineer
jo***********@surfcontrol.com

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:Ox**************@tk2msftngp13.phx.gbl...
Hi Ahmed,

Thanks for the reply.

Yes, that would work with HTML controls, but I'm trying to enable a disabled ASP.Net server side control...and thats the problem...

e.g.
<asp:checkbox id="Recursive_chk" style="Z-INDEX: 118; LEFT: 48px; POSITION: absolute; TOP: 488px" tabIndex="11" runat="server" CssClass="description"
Enabled="False" Text="Recursive">

That checkbox is disabled at design time/code behind, but I can't enable it using client-side script. And I don't want to revert to using HTML
controls, as its a step backwards. :)

My only other thought is to move the logic for enabling/disabling controls
to the HTML page and have that invoked when the page loads on the client,
but that just sucks!!

Regards,
Stuart

"Ahmed Ali" <ah***@visualsoft-inc.com> wrote in message
news:ur*************@tk2msftngp13.phx.gbl...> Hi,

I dunno its a better way or not. but i suggest u to make the control

disbale
on design time..
input id="cterdate" type="text" maxLength="12" size="20" name="cterdate"
runat="server" disabled

Now you can change the status of the field on page load event on the

server
side or onthe client side. that will work ...

Regards

Ahmed

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:#D**************@TK2MSFTNGP10.phx.gbl...
Hi,

I have an aspx page where some controls are initially disabled by the
code-behind 'Page_Load' event. I want these controls to be dynamically enabled when the user checks a checkbox. Because I don't want a

post-back,
I added some javascript to do this

However, using client-side JS, I cannot enable any controls that have

been disabled by server-side code. If the control is initially enabled, I can disable/enable it client-side.

I'm using the following JS:

document.getElementById("Recursive_chk").disabled = false;

Is this a known problem, or am I doing something wrong?

Thanks,
Stuart

Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+



Nov 17 '05 #4
John, it renders as:

<span class="description" disabled="disabled" style="Z-INDEX: 117; LEFT:
48px; POSITION: absolute; TOP: 488px"><input id="Recursive_chk"
type="checkbox" name="Recursive_chk" disabled="disabled" tabindex="11"
/><label for="Recursive_chk">Recursive</label></span>

Hmm, is the span taking precedence over the checkbox? ASP.Net emits the
<span>

Cheers,
Stu

"John Saunders" <jo***********@surfcontrol.com> wrote in message
news:#7**************@tk2msftngp13.phx.gbl...
Stu,

How does Recursive_chk render on the client? Could you show us the resulting HTML?
--
John Saunders
Internet Engineer
jo***********@surfcontrol.com

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:Ox**************@tk2msftngp13.phx.gbl...
Hi Ahmed,

Thanks for the reply.

Yes, that would work with HTML controls, but I'm trying to enable a

disabled
ASP.Net server side control...and thats the problem...

e.g.
<asp:checkbox id="Recursive_chk" style="Z-INDEX: 118; LEFT: 48px;

POSITION:
absolute; TOP: 488px" tabIndex="11" runat="server" CssClass="description"
Enabled="False" Text="Recursive">

That checkbox is disabled at design time/code behind, but I can't enable

it
using client-side script. And I don't want to revert to using HTML
controls, as its a step backwards. :)

My only other thought is to move the logic for enabling/disabling controls to the HTML page and have that invoked when the page loads on the client, but that just sucks!!

Regards,
Stuart

"Ahmed Ali" <ah***@visualsoft-inc.com> wrote in message
news:ur*************@tk2msftngp13.phx.gbl...> Hi,

I dunno its a better way or not. but i suggest u to make the control

disbale
on design time..
input id="cterdate" type="text" maxLength="12" size="20" name="cterdate" runat="server" disabled

Now you can change the status of the field on page load event on the

server
side or onthe client side. that will work ...

Regards

Ahmed

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:#D**************@TK2MSFTNGP10.phx.gbl...
> Hi,
>
> I have an aspx page where some controls are initially disabled by the > code-behind 'Page_Load' event. I want these controls to be dynamically > enabled when the user checks a checkbox. Because I don't want a
post-back,
> I added some javascript to do this
>
> However, using client-side JS, I cannot enable any controls that

have been
> disabled by server-side code. If the control is initially enabled,
I can
> disable/enable it client-side.
>
> I'm using the following JS:
>
> document.getElementById("Recursive_chk").disabled = false;
>
> Is this a known problem, or am I doing something wrong?
>
> Thanks,
> Stuart
>
> Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+
>
>



Nov 17 '05 #5
Yes, said nail is now bent; it's the bloody <span>!

ASP.Net should not be setting the span to disabled, since it is completely
redundant - the checkbox renders itself disabled...<shakes head>...ASP.Net
is driving me nuts today! :)

Thanks for your help Jon!
Stu

"John Saunders" <jo***********@surfcontrol.com> wrote in message
news:uT**************@TK2MSFTNGP10.phx.gbl...
Stu,

You may have hit the nail on the head. As an experiment, try putting that
code into your .aspx file as raw HTML (changing the name and id of the
checkbox, of course). And see if your JavaScript can enable it. I bet if you remove the disabled attribute from the span, it will work.

All of which _still_ leaves you in trouble, but at least you'll know what
kind of trouble you're it! Your JavaScript code would have to use the DOM to get to the parent of Recursive_chk to enable or disable it as well.
--
John Saunders
Internet Engineer
jo***********@surfcontrol.com

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:ud**************@tk2msftngp13.phx.gbl...
John, it renders as:

<span class="description" disabled="disabled" style="Z-INDEX: 117; LEFT:
48px; POSITION: absolute; TOP: 488px"><input id="Recursive_chk"
type="checkbox" name="Recursive_chk" disabled="disabled" tabindex="11"
/><label for="Recursive_chk">Recursive</label></span>

Hmm, is the span taking precedence over the checkbox? ASP.Net emits the
<span>

Cheers,
Stu

"John Saunders" <jo***********@surfcontrol.com> wrote in message
news:#7**************@tk2msftngp13.phx.gbl...
Stu,

How does Recursive_chk render on the client? Could you show us the

resulting
HTML?
--
John Saunders
Internet Engineer
jo***********@surfcontrol.com

"Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
news:Ox**************@tk2msftngp13.phx.gbl...
> Hi Ahmed,
>
> Thanks for the reply.
>
> Yes, that would work with HTML controls, but I'm trying to enable a
disabled
> ASP.Net server side control...and thats the problem...
>
> e.g.
> <asp:checkbox id="Recursive_chk" style="Z-INDEX: 118; LEFT: 48px;
POSITION:
> absolute; TOP: 488px" tabIndex="11" runat="server"

CssClass="description"
> Enabled="False" Text="Recursive">
>
> That checkbox is disabled at design time/code behind, but I can't enable it
> using client-side script. And I don't want to revert to using HTML
> controls, as its a step backwards. :)
>
> My only other thought is to move the logic for enabling/disabling

controls
> to the HTML page and have that invoked when the page loads on the

client,
> but that just sucks!!
>
> Regards,
> Stuart
>
>
>
> "Ahmed Ali" <ah***@visualsoft-inc.com> wrote in message
> news:ur*************@tk2msftngp13.phx.gbl...> Hi,
> >
> > I dunno its a better way or not. but i suggest u to make the control > disbale
> > on design time..
> > input id="cterdate" type="text" maxLength="12" size="20"
name="cterdate"
> > runat="server" disabled
> >
> > Now you can change the status of the field on page load event on the > server
> > side or onthe client side. that will work ...
> >
> > Regards
> >
> > Ahmed
> >
> > "Stu Carter" <St********@somekindofcompany.co.uk> wrote in message
> > news:#D**************@TK2MSFTNGP10.phx.gbl...
> > > Hi,
> > >
> > > I have an aspx page where some controls are initially disabled
by the
> > > code-behind 'Page_Load' event. I want these controls to be
dynamically
> > > enabled when the user checks a checkbox. Because I don't want a
> > post-back,
> > > I added some javascript to do this
> > >
> > > However, using client-side JS, I cannot enable any controls that

have
> been
> > > disabled by server-side code. If the control is initially

enabled,
I
> can
> > > disable/enable it client-side.
> > >
> > > I'm using the following JS:
> > >
> > > document.getElementById("Recursive_chk").disabled = false;
> > >
> > > Is this a known problem, or am I doing something wrong?
> > >
> > > Thanks,
> > > Stuart
> > >
> > > Env: Windows 2003, VS. Net 2003, 1.1 Framework, IE 6+
> > >
> > >
> >
> >
>
>



Nov 17 '05 #6
I figured it out for ya. Had the same problem

use this

//To Disable
document.getElementById(strHiddenCheckBox).parentE lement.setAttribute('disabled','true');
//To Enable
document.getElementById(strHiddenCheckBox).parentE lement.removeAttribute('disabled');
Nov 17 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Dune | last post: by
reply views Thread by ara99 | last post: by
reply views Thread by Ahmed | last post: by
1 post views Thread by Chattanooga | last post: by
2 posts views Thread by Meels Lilbok | last post: by
5 posts views Thread by Dan Tallent | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.