Q: Textbox press Enter submit form (ASCX version)

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
 
W

w. 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
 
V

Vidar Petursson

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
 
W

w. 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.
 

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

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top