Instead of asp:CheckBox use <input type="checkbox" runat="server" ... />.
Set all client events in their natural way. Set
onserverchange="chkLite_CheckedChanged".
--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
"mark4asp" <> wrote in message
news:017a39b4$0$25652$...
> Here is the control:
>
> <asp:CheckBox ID="chkLite" runat="server" Checked="False"
> AutoPostBack="True" OnCheckedChanged="chkLite_CheckedChanged" />
>
> Here is the code-behind:
>
> chkLite.Attributes.Add("onblur", "LiteChange(this);");
>
> Here is the control as asp.net renders it in the html:
>
> <span onblur="LiteChange(this);"><input id="_ctl0_cph_chkLite"
> type="checkbox" name="_ctl0:cph:chkLite" checked="checked"
> onclick="javascript:setTimeout('__doPostBack(\'_ct l0$cph$chkLite\',\'\')
> ', 0)" language="javascript" /></span>
>
> The problem with this is that the onblur event is not fired because the
> parent span does not notice when chkLite is checked or unchecked. The
> javascript LiteChange() function never fires.
>
> Is there a way I can get this (below) in my html:
>
> <input id="_ctl0_cph_chkLite" type="checkbox" name="_ctl0:cph:chkLite"
> checked="checked"
> onclick="javascript:setTimeout('__doPostBack(\'_ct l0$cph$chkLite\',\'\')
> ', 0)" onblur="LiteChange(this);" language="javascript" />
>
> In other words, attach the onblur event directly to the checkbox?
>
> The javascript is below (it's just there as a demonstration, currently
> functionally inactive, as you can see).
>
> function LiteChange(oSpan)
> {
> if(oSpan.children[0].checked)
> alert('chkLite is checked');
> else
> alert('chkLite not checked');
> alert('hello');
> }