Todella mukava cross-browser-menetelmä, jolla tehdään M SK1DefaultButtons' asia - niin, että kun te painatte enterMSC4 oikean liitteen 'clicks '
Tämä on yksi tärkeimmistä UI-ongelmista, jotka johtuvat pääasiassa ASP:stä Darrell huomauttaa, että on olemassa useita ratkaisuja, mutta yksikään niistä ei todellakaan ratkaise koko ongelmaa. Darrell Nortonin blogi (linkki): (toistetaan täällä, koska en enää koskaan löydä sitä muulla tavalla.
Tarkoitettavien polttojen jättäminen käyttöön, kun käyttäjä painaa Enter-kysymystä - lopullisesti !
Yksi vaikeimmista asioista verkkosivujen kehittämisessä on saada tietty laatikko toimitettavaksi, jos sivussa on enemmän kuin yksi laatikko. Metarakentajat kuuluisa, on yksi, joka toimii myöhässäM SK1mallilähettäjät.
Julkisen sähköisen kaupankäynnin verkkosivuston melko tiukkojen asiakkaiden vaatimusten vuoksi tarvisin jotakin, joka menisi vielä pidemmälle matkailijoiden historiassa. Janus Kamp Hansen , joka toimi vain IE.
Olen laajentanut sitä, jotta se toimisi Mozillan ja Netscapen kanssa. 6+, Sitten lisäsin lisää koodia, jonka avulla se voisi toimia useimpien Netscape-lähteiden kanssa.
Ensimmäinen, kopioi tämän menetelmän helposti saatavilla olevaan paikkaan
julkinen tyhjiö SetDefaultButton(Page page, TextBox textControlM SK2 Tappi 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 = @"*<SCRIPT-kieli=javascript>
Funktio fnTrapKD(btn, tapahtumaM SK2
jos (asiakirja
jos (eventM SK1kysymyksiä koskeva koodi
event.returnValue =falseM SK2
tapahtuma.lopettaa M SK1 totta;
btn.click();
}
}
Muuten, jos (asiakirja.getElementByIdM SK2
jos (eventM SK1mikä == 13){
event.returnValue =falseM SK2
tapahtuma.lopettaa M SK1 totta;
btn.click();
}
}
Muussa tapauksessa
jos(event.mikä M SK2 13){
event.returnValue =falseM SK2
tapahtuma.lopettaa M SK1 totta;
btn.click();
}
}
}
</SCRIPT>";
*Page.RegisterStartupScript("ForceDefaultToScript", theScript);* *textControl.Attributes.Add("onkeydown", "fnTrapKD(" + defaultButton.ClientID + ",event)");*}
Tämä koodi rekisteröi annetun skriptin Page:n kanssa.
Dokumentti.kaikki, jos julkilausuma kattaa IE:n
Nyt liitetään kutakin haluamaanne tekstilaatikkoa yhdistävä koodin rivi tiettyyn esittämispakoon. EsimerkkinäM SK1
*SetDefaultButton(this, TextBox1, Button1);* *SetDefaultButton(this, TextBox2, Button2);* *SetDefaultButton(this, TextBox3, Button3);*Tavallisesti asetan sen sivuun_Load,Pagesta lähtienM SK2RegisterStartupScript-menetelmä jättää huomiotta päällekkäiset skriptitMSC3 Nyt on yksinkertaisesti kyse soittamisesta SetDefaultButton -järjestelmään kullekin tekstilaatikkolleMST4submit-puppuyhdistystä koskevaan assosiaatioon .
En ole vielä testatnut tätä laajasti, ja osa JavaScriptista saattaa olla tarpeetonta. Kun otetaan huomioon Netscapen versionien määrä M SK3, ( ja niiden hätiköisyysMSC5 se ei luultavasti toimikaan kaikkiin niihin.