How can I add a client-side event to an asp:CheckBox ?

M

mark4asp

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(\'_ctl0$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(\'_ctl0$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');
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,049
Latest member
Allen00Reed

Latest Threads

Top