Q: Textbox press Enter submit form (ASCX version)

  • Thread starter Thread starter w. jORDAN
  • Start date Start date
W

w. jORDAN

Hello all,

It's known to how to make user press enter
in an asp:textbox and the form is submited by
adding an attribute to the textbox with an
onkeydown jscript eventhandler.

For example,
-----------------------------------------
<asp:textbox id="t1" runat="server"/>
<asp:button id="b1" runat="server"/>

page_load event:
t1.Attributes.Add("onkeypress", "submitForm();");

Client-side Script:
function submitForm()
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.all.b1.click();
}
}
-----------------------------------------

The above should work well when used inside an
ASPX page.
However, my situation now is the thing happens
inside an ASCX, a dynamically loaded user
control.
As u all know, the actual ID of the asp:button
varies when the control is rendered.
It could be

parentCtrl__ctl0_b1

or something else.

So the trick in the client side script has to
be modified. But how to? And any other more
flexible ways? Somebody plz give me some hints!

Jordan
 
YES, your advice does help!

Except that
t1.Attributes.Add("onkeypress", "submitForm(" + b1.ClientId + ");");
should be
t1.Attributes.Add("onkeypress", "submitForm(\"" + b1.ClientID +
"\");");

And
document.getElementById(submitButtonId).click();
should be
document.all[submitButtonId].click(); // for better browser
compatibility

OK, my thing has been done now.
Thank you very much for your quick help!

Best Regards,
Jordan
 
Hi
document.all[submitButtonId].click(); // for better browser
compatibility
Wrong "document.all" only works on Explorer

For better browser compatibility
document.forms[0].submitBtn.click();

--
Best Regards
Vidar Petursson
==============================
Microsoft Internet Client & Controls MVP
==============================
w. jORDAN said:
YES, your advice does help!

Except that
t1.Attributes.Add("onkeypress", "submitForm(" + b1.ClientId + ");");
should be
t1.Attributes.Add("onkeypress", "submitForm(\"" + b1.ClientID +
"\");");

And
document.getElementById(submitButtonId).click();
should be
document.all[submitButtonId].click(); // for better browser
compatibility

OK, my thing has been done now.
Thank you very much for your quick help!

Best Regards,
Jordan
 
Hi Vidar,

Yes, i know that document.all only works on IE and Opera 7.

But submitButtonId is a string,
can it be used like that?

document.forms[0].submitButtonId.click();

Jordan

Vidar Petursson said:
Hi
document.all[submitButtonId].click(); // for better browser
compatibility
Wrong "document.all" only works on Explorer

For better browser compatibility
document.forms[0].submitBtn.click();

--
Best Regards
Vidar Petursson
==============================
Microsoft Internet Client & Controls MVP
==============================
w. jORDAN said:
YES, your advice does help!

Except that
t1.Attributes.Add("onkeypress", "submitForm(" + b1.ClientId + ");");
should be
t1.Attributes.Add("onkeypress", "submitForm(\"" + b1.ClientID +
"\");");

And
document.getElementById(submitButtonId).click();
should be
document.all[submitButtonId].click(); // for better browser
compatibility

OK, my thing has been done now.
Thank you very much for your quick help!

Best Regards,
Jordan

Jordan,

Pass the submit button's ClientId as a parameter to the submitForm
function (untested):


page_load event:
t1.Attributes.Add("onkeypress", "submitForm(" + b1.ClientId + ");");

Client-side Script:
function submitForm(submitButtonId)
{
if (event.keyCode == 13)
{
event.cancelBubble = true;
event.returnValue = false;
document.getElementById(submitButtonId).click();
}
}


Hope this helps.

Chris.
 
Back
Top