Avatar billede asgerz.dk Nybegynder
13. januar 2005 - 10:03 Der er 2 kommentarer og
1 løsning

Hvad styrer events ved enter fra en textbox

Jeg har en webform, hvor jeg har nogle textboxe og nogle knapper! Når jeg trykker enter i en textbox skal en af knappernes event afvikles. Dette sker også fint, men samtidig afvikles der også en event for en anden knap! Hvad kan der være galt!
Avatar billede burningice Nybegynder
13. januar 2005 - 15:33 #1
når du trykker enter i en textbox bliver din form submittet. Det er default behaviour i alle de browsere jeg kender.

Det er som oftest også fint nok, men i asp.net har man bare det problem, at hele siden er en stor form. I normal html, kan man jo bare lave flere forme der hører til hver sin del af siden. En login-form, søg-form osv. Dette er dog lidt problematisk i asp.net.

Jeg går ud fra at det er dette problem du er stødt ind i. Det kan dog løses rimelig enkelt med denne funktion. Brugen af den burde sige sig selv

        protected void DefaultButton(TextBox textBox, Button button)
        {
            //Sets default buttons.
            //Created by Janus Kamp Hansen - http://www.kamp-hansen.dk
            StringBuilder sScript = new StringBuilder();

            sScript.Append("<SCRIPT language=\"javascript\"> \n");
            sScript.Append("function fnTrapKD(btn){ \n");
            sScript.Append(" if (document.all){ \n");
            sScript.Append("  if (event.keyCode == 13) \n");
            sScript.Append("  { \n");
            sScript.Append("    event.returnValue=false; \n");
            sScript.Append("    event.cancel = true; \n");
            sScript.Append("    btn.click(); \n");
            sScript.Append("  } \n");
            sScript.Append(" } \n");
            sScript.Append("} \n");
            sScript.Append("</SCRIPT> \n");

            textBox.Attributes.Add("onkeydown", "fnTrapKD(document.all." + button.ClientID + ")");
            this.RegisterStartupScript("ForceDefaultToScript", sScript.ToString());
        }
Avatar billede asgerz.dk Nybegynder
21. januar 2005 - 09:23 #2
--> cyberfessor: Da jeg ikke er stor tilhænger af unødvendig kode, har jeg fundet ud af at ved at ændre rækkefølgen på html'en (asp.net) på knapperne i formen fik jeg det ønskede resultat. Den submitter automatisk den første knap i formen!
Avatar billede burningice Nybegynder
21. januar 2005 - 13:32 #3
unødvendig kode ?! tja... hvis det er sådan man ser på det, og heller vil puttes ned i en firkantet kasse og skulle være tvunget til at arrangere sine knapper på en bestemt måde, så go ahead, be my guest.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester