# Echt leuk kruisen -browser-methode om het ding te doen met de 'DefaultButtons' ding - zodat wanneer je invoert , de juiste knop M'klikt

<datetime class="hidden">2004-03-24T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, JavaScript, Web Development -->
Dit is een van de belangrijkste gebruikersinterface-problemen, die in essentie veroorzaakt worden door ASP.NET's M SK2one form ' rule [Darrell](http://dotnetjunkies.com/WebLog/darrell.norton/) Hij wijst erop dat er een aantal oplossingen zijn, maar geen van hen het hele probleem echt oplossen. [Darrell Norton's Blog](http://dotnetjunkies.com/WebLog/darrell.norton/) ([Link](http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/03/03/8374.aspx)): (herproduceerd hier omdat ik het anders nooit meer zal vinden.

> ## [*De verstekknoppen invoeren wanneer de gebruiker de Invoersleutel drukt - uiteindelijk!*](http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/03/03/8374.aspx)
> 
> *Een van de moeilijkste dingen in webontwikkeling is het krijgen van een bepaalde knop om te verzenden als je meer dan één knop op de pagina hebt.* [*Meta-bouwers*](http://www.metabuilders.com/) *beroemd, heeft er een die werkt voor late-modelbrowsersM SK2*
> 
> *Omwille van nogal strenge klantenbehoeften voor een openbare e-commerce site, moest ik iets hebben dat verder teruggaat in de browsergeschiedenis.* [*Janus Kamp Hansen*](http://www.kamp-hansen.dk/pages/showdoc.asp?id=28&menuid=21&menuid=18) *Dat werkte alleen voor IE.*
> 
> *Ik vergrootte het om met Mozilla en Netscape te werken 6+, toen voegde ik nog meer code toe om het te laten werken met de meeste Netscape-browsers ♫4+ . Toen tweakte ik de prestatie een beetje ♫ , en dat ♫*
> 
> *Eerst, kopieer deze methode naar een gemakkelijk toegankelijke plek.*
> 
> *public void SetDefaultButton(Page pageM SK1 TextBox textControl, Knoppie defaultButton≥)*
> 
> *{*
> 
>       *// Sets default buttons.*
>     
>       *// Originally created by Janus Kamp Hansen - http://www.kamp-hansen.dk*
>     
>       *// Extended by Darrell Norton - http://dotnetjunkies.com/weblog/darrell.norton/* 
>     
>       *//   -- added Mozilla support, fixed a few issues, improved performance*
>     
>       *string theScript = @"*
> 
> *&lt;SCRIPT taal=""javascript""&gt;*
> 
> *Funktie fnTrapKD(btn, gebeurtenisM SK2*
> 
> *Als (document*
> 
> *Als (gebeurtenis.keyCode == 13){*
> 
> *event.returnValue=falseM SK2*
> 
> *Gebeurtenis.kanseleer =waarM SK2*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *Anders als (document.getElementByIdM SK2*
> 
> *Als (gebeurtenis*
> 
> *event.returnValue=falseM SK2*
> 
> *Gebeurtenis.kanseleer =waarM SK2*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *Anders als(document.layersM SK2*
> 
> *Als(gebeurtenisM SK1die == 13){*
> 
> *event.returnValue=falseM SK2*
> 
> *Gebeurtenis.kanseleer =waarM SK2*
> 
> *btn.click();*
> 
> *}*
> 
> *}*
> 
> *}*
> 
> *&lt;/SCRIPT&gt;";*
> 
>       *Page.RegisterStartupScript("ForceDefaultToScript", theScript);*
>     
>       *textControl.Attributes.Add("onkeydown", "fnTrapKD(" + defaultButton.ClientID + ",event)");*
> 
> *}*
> 
> *Deze code registreert het gegeven script met de Bladsy. Dan voegt hij een eigenschap toe aan de textbox, wat in dit geval een onKeyDown-gebeurtenis is dat de fnTrapKD-functie roept met de knop ’s clientID MSC3itM SK4s HTML ID in de rendereerde HTMLMST5 en de gebeurtenisMst6 Ik moest de gebeurtenis insturen omdat NetscapeMSP7Mozilla browsers dit soort gebeurtenis niet kunnen afvangen tenzij je hem instuurt naar de functioneMSV9 IE kan toegang krijgen tot de gebeurtenis vanuit het documentobjectM SP10 maar we willen iets moois en overeenlopendMSS11browsercompatibelM SS12*
> 
> *Het document.alle als de stelling IE omvat. Het document~.getElementById omvat Netscape 6+ en Mozilla browsersM SK4 Het dokumentMSC5layers als de statement met Netscape werkt.*
> 
> *Nu voeg je een lijn code toe die elke tekstbox die je wilt verbindt met een bepaalde stuur-knop.*
> 
>       *SetDefaultButton(this, TextBox1, Button1);*
>     
>       *SetDefaultButton(this, TextBox2, Button2);*
>     
>       *SetDefaultButton(this, TextBox3, Button3);*
> 
> *Meestal zet ik dat in de pagina.\_LaadM SK1 omdat de Page.RegisterStartupScript-methode duplikaatscripts zal negerenMSC3 Nu is het gewoon een kwestie van een roep naar SetDefaultButton voor elke textboxMST4submit button associationMst5*
> 
> *Ik heb dit nog niet uitgebreid getest, maar , en sommige JavaScripts zijn misschien onbelangrijk.. En als je kijkt naar het aantal Netscape-versies, 4 en (, en hun luiheid, ),, dan werkt het waarschijnlijk niet op al die ’ Maar het werkt (, voor het moment,)., en tenminste een poging te doen bij Netscape, MSC10 en IE, M SK11, zal de webbrowsers van mijn site, ’ en . bedekken.*