Saturday, October 23, 2004

Default Button for a TextBox (Data entry screen) in ASP.NET

Sometimes I get annoyed when hitting the enter key in a TextBox (say login screen) resulting in undesired effects like the wrong Button being “clicked“. After so many code tricks, I found the below method that allows you to specify a default Button to submit when the user hits the enter key in a TextBox.

When you press a key on your keyboard, the js OnKeyPress event is fired. This calls a function to which we pass the id of the button associated with the TextBox. The function gets a reference to the button and simuilates a mouse-click on the Button. We perform a browser detection because IE and Netscape have different event models. The function finally returns false so that the keypress event is cancelled (otherwise a second form submit will be raised). I tried this code with newer versions of IE 6.0/Netscape 7 it worked great!.

//client side js
function clickButton(e, buttonid){
var bt = document.getElementById(buttonid);
if (typeof bt == 'object'){
if(navigator.appName.indexOf("Netscape")>(-1)){
if (e.keyCode == 13){
bt.click();
return false;
}
}
if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){
if (event.keyCode == 13){
bt.click();
return false;
}
}
}
}

//code behind
TextBox1.Attributes.Add("onkeypress", "return clickButton(event,'" + Button1.ClientID + "')");

The code behind generates the following code:

< input name="TextBox1" type="text" id="TextBox1" onkeypress="return clickButton(event,'Button1')" / >

This causes web control Button1 to be clicked when the enter key is hit inside TextBox1.



With Best Regards,
Mitesh Mehta
Email : miteshvmehta@gmail.com
http://cc.1asphost.com/miteshvmehta/

2 comments:

Anonymous said...

Hi there Mitesh, I was just browsing, looking for Work at Home blogs and found yours. Very Nice! If you're a stay-at-home mom, student, home maker or just someone in need of some extra cash, here's an Ideal Opportunity! You can get paid submitting and entering data online and make an extra $300-$1000+ per day with only 30 mins daily. Go to work from home data entry for more info and to join! It's RISK FREE with a 60-day
money back guarantee. :)

Anonymous said...

Nice Jobs at Home related blog Mitesh. If you're looking for a way to earn extra $$$ working from home, here's a RISK FREE opportunity, with a 60-day money back guarantee. Just 30-minutes a day and a little typing on your computer, and you too could be making from $300-$1000 daily! Go to work from home data entry for more info and to join! :)