Mikä olisi helpoin tapa estää seuraava asia:
Internet-sivulla on lomake, jossa on useita kenttiä (nimi, email jne.) ja viimeisenä "lähetä"-painike.
Jos ensimmäiseen kenttään (tai mihin tahansa muuhunkin) kirjoittaa ja painaa enteriä (esim. vahingossa), niin lomake lähetetään.
Yritin Javascriptillä selvitä tuosta (olen tosin ihan aloittelija siinäkin), että jokainen kenttä olisi pakollinen, eikä lomaketta lähetetä ennen kuin jokaisessa on tekstiä. Mutta tuo ei ole hyvä tapa, koska kaikkia kenttiä ei voi tehdä pakolliseksi käytännön syistä.
Eli tiivistettynä: Enterin painaminen tekstikentässä pitäisi saada "pois päältä" :)
Onnistuisihan tuo tosin niin, että jokainen tekstikenttä olisikin "boxi" mutta ei sekään tunnu oikein järkevältä (?)
Ei tuollaista varmaan voisi esim. CSS:llä tehdä (?)
Tuhannet kiitokset jo etukäteen, jos joku jaksaa vaivautua.
Javascript > Lomakkeiden käsittelystä
4
585
Vastaukset
- Piru
Meinaan toi enter == lähetys tossa formissa.
vaikka pisti onSubmit="return metodi();"
ja metodi palautti false, niin lähtipä kuitenkin.
Sitten kun siitä selvittiin, niin eipä toimi NetScapella samalla tavalla tietenkään.
Seuraava räpellys ei lähetä, jos painaa enteriä ja toimii sekä NS 7.1 ja IE 6.0. Formi lähtee, kun kentässä on tekstiä ja Submittia painetaan
document.onkeypress = check_submit;
document.onmousedown = check_submit;
function check_submit(e)
{
//Netscape välittää eventin muuttujassa e ja IE ei
if (!e)
{
var e = window.event;
var target= e.srcElement.value;
}
else target = e.target.value;
if(e.keyCode == 13)
{
alert("täytä kentät ja lähetä painamalla Submit-nappia hiirellä!");
}
else if(target == "Submit" && document.formi.txt.value != "")
{
document.formi.submit();
}
} - MachuPichu
Tämä oli paha saada toimimaan eri selaimissa, mutta sain tehtyä lyhyen skriptinpätkän ilman selaimen version tutkimista. Huomaa että kaikki "toimenpiteet" funktiossa TorjuEnter eivät ole tarpeellisia kaikissa selaimissa mutta niistä ei ole myöskään haittaa.
Tämän pitäisi toimia IE5 , NN7.0 / Mozilla1.0 , Opera7 selaimissa (en ole testannut Macin Safari selainta):
function TorjuEnter(evt) {
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode :
((evt.which) ? evt.which : evt.keyCode);
if (charCode == 13) {
if (evt.preventDefault)
evt.preventDefault();
else
evt.returnValue = false;
if (evt.stopPropagation)
evt.stopPropagation();
else
evt.cancelBubble = true;
return false;
} else {
return true;
}
}
Käyttö:
Machu - Testbrain
Yllä jo saattaa olla päteviä vastauksia, mutta itse ehkä päätyisin seuraavanlaiseen ratkaisuun: Lähetä-napin yläpuolelle laitetaan yksi Check Box ja teksti "Olen tarkistanut lomakkeen oikeellisuuden." Check Box laitetaan oletuksena pois päältä, samoin Lähetä-nappi on oletuksena disabloitu. Kun Check Box valitaan, niin JavaScriptillä muutetaan myös Lähetä-nappi "Enabloduksi".
- tarkista kentät
Tietämättä tarkemmin mihin käyttöön lomakkeesi tulee, itse toteuttaisin kyllä tarkistuksen. Korvaa submit normaalilla painikkeella ja suorita lomakkeen lähettäminen skriptistä käsin.
Lomakkeen tarkistushan käy näppärästi looppaamalla kaikki kentät ehtolauseen lävitse, joka korostaa ongelmalliseet kohdat punaisella.
Mikäli lomakkaakeesi on riippuvainen javascript tuesta, on hyvä että myös lähettäminen riippuu siitä.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Hallitus pyrkii rajoittamaan kaupan omien halpamerkkien myyntiä
Helsingin Sanomien mukaan hallitus valmistelee lakihanketta, joka suitsii kaupan valtaa ja rajoittaa omien halpamerkkien2373580- 623268
Björn Wahlroos, maataloustuet lakkautettava
Sanoo pankkimies. Mitäs persut ja muut tukinulliem perskärpäset tähän? "Wahlroos listaa kansallisen maataloustuen. – I792767Persut päättivät hiilivoiman kieltämisestä Suomessa
Moni on jo unohanut kuka hyväksyi hiilivoimaloiden kieltämisen Suomessa: persut Sukupuolineutraalit liikennemerkitk392601Työvoimatoimisto
Nyt kysyisin miksi pitää käydä työvoimatoimistossa paikanpäällä, kun he eivät muuta tee kuin laittavat koneelle uudet ve942266Nalle Wahlroos ei ulise kuten Teemu Selänne sähkölaskuista
Nalle "hah hah" nauroi saamistaan sähkötuista, kun taas Teemu-poika itkeä tirautti kovasta sähkön hinnasta. Nalle nauro281963Muistattekos kuinka kokoomus ja persut vinkuivat sähkön hinnasta?
Oppositiossa vuonna 2022, kun sähkön hinta uhkasi nousta 20 senttiin kilowattitunnilta? Nyt ovat hiiren hiljaa, kun pitä911961Vain persut vastustivat hiilivoimaloiden alasajoa
Persut vastusti jyrkästi hiilen kieltolakia ja on myöhemmin vaatinut hiilivoimaloiden pitämistä käytössä. He perusteliva411854Mikä aate kaiken pahan takana?
Se laiskistuttaa kansat, opettaa vaatimaan etuisuuksia, syleilee maailmoja eikä omaa kansaa.1011763Mietin sua liikaa
Mietin nytkin sitä, että millaista se olisi tulla kotiin, kun sinä olisit täällä vastassa. Tai niin päin, että sinä tuli691093