Tyhjän lomakkeen lähettämisen esto...

Nyt sain lomakkeeni vihdoin toimimaan, mutta miten saisin estettyä tyhjän lomakkeen lähettämisen? Tarkoitan tällä täysin tyhjää lomaketta, en sellaista että esimerkiksi yksi kohta lomakkeesta on täyttämättä.
9699
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

muuten sitä ei voi oikeen tehdä, koska tarkistus pitää tehdä selaimen päässä.

Eli eka joku skripti, joka validoi formin



function validateOnSubmit()
{
if(document.formi.email.value == "")
{
return false;
}
else if(document.formi.address.value == "")
{
return false;
}
else return true;

}





jokaiseen

Äänestä

Alkuun ennen kun mitään on tulostettu sivulle, en ole varma toimiiko, kun nopsaan ajattelin:

if ( empty($_POST) ) {
header('Location: http://www.sunsaitti.net/lomake.html');
}

Äänestä
  • Tuo alkuun..

    Äänestä

  • koska toi ajetaan vasta palvelimella. Toisekseen ei se POST tyhjä ole välttämättä, vaikka käyttäjä ei ole mitään syöttänyt. Selain yleensä lähettää submit-napinkin ja sitten on lisäksi vielä koodaajaan mahdollisesti asettamat hidden-kentät

    Äänestä

  • Piru kirjoitti:

    koska toi ajetaan vasta palvelimella. Toisekseen ei se POST tyhjä ole välttämättä, vaikka käyttäjä ei ole mitään syöttänyt. Selain yleensä lähettää submit-napinkin ja sitten on lisäksi vielä koodaajaan mahdollisesti asettamat hidden-kentät

    No, näinpä se onkin. :|

    Mutta silti musta tuo tapa on hyvä, kun ei olla javascritin varassa, vaikka se tilanne harvoin varmaan tuleekaan vastaan. Tuota voi kuitenkin hiukan koodata lisää jolloin tuon submitin voi sivuuttaa.

    Äänestä

  • Macmää kirjoitti:

    No, näinpä se onkin. :|

    Mutta silti musta tuo tapa on hyvä, kun ei olla javascritin varassa, vaikka se tilanne harvoin varmaan tuleekaan vastaan. Tuota voi kuitenkin hiukan koodata lisää jolloin tuon submitin voi sivuuttaa.

    Ainahan se lomakkeelta tullut data pitää kuitenkin tarkistaa palvelimella. Sieltähän voi lähettää vaikka apuohjelmaa käyttäen ihan mitä vaan.

    Tärkeää on mielestäni se, että lomakkeessa on normaali submit-nappi. Näin ollen se lomake lähtee, vaikka ois javascript disabled.

    onchange ja onsubmit-handlerit toimii sitten, jos javascript on päällä. Niillä saa taas käyttäjän syötteen muodon ainakin tarkistettua ja ei lähetetä kamaa turhaan netin yli, jos syöte on alunperinkin väärin.

    Äänestä

On kun, ei lomaketta lähetettäessä tehdä tarkistuksia, vaan sitten kun se tulee perille.

Eli, jos tiettyjen lomakkeiden kenttien arvot ovat tyhjiä, niin palautat lomakkeen täyttäjälle virheilmoituksen ja mahdollisuuden täyttää uudestaan lomakkeen. Muussa tapauksessa lomakkeen arvot talletetaan ja lähetetään kiitos viesti. Tällä tavalla se oikeaoppinen ohjelmointi tehdään ja vältytään turhalta työltä, niin ihmis- kuin konetyöltäkin.

Äänestä
  • *On kun, ei lomaketta lähetettäessä tehdä tarkistuksia, vaan sitten kun se tulee perille.*

    Miksi kuluttaa aikaa ja palvelimen resursseja, kun saman tarkistuksen voi tehdä jo selaimella?

    Tietenkin samat tarkistukset tehdään myös palvelin päässä, jolloin lomake toimii kaikilla.


    *Tällä tavalla se oikeaoppinen ohjelmointi tehdään ja vältytään turhalta työltä, niin ihmis- kuin konetyöltäkin.*

    JS lomakkeen tarkistus on helppo tehdä joten ei siinä paljo työtä ole. Eikä tuo ole turhaa, nopeuttaa ja auttaa käyttäjiä.


    Tietenkin riippuu tapauksesta miten kannattaa toteuttaa.

    Äänestä

Käyttäen _if ja _else

Äänestä

Kommentoi aloitusta


peehoopee kirjoitti:

Nyt sain lomakkeeni vihdoin toimimaan, mutta miten saisin estettyä tyhjän lomakkeen lähettämisen? Tarkoitan tällä täysin tyhjää lomaketta, en sellaista että esimerkiksi yksi kohta lomakkeesta on täyttämättä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu