Pakolliset lomakkeen kohdat

Pitäisi saada lomakkeeseen sellainen "juttu" erääseen kenttään, että siihen on pakko laittaa jotain, että pääsee lähettämään sen.

KUINKA TEHDÄÄN?

Vastakkaa pian
10401
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Esimerkiksi näin.
Head osaan:

function laheta(lomake) {

if (lomake.elements['kentän nimi tähän'].value=="") {
alert("Kirjoita jotain!");
lomake.elements['kentän nimi tähän'].focus();
return;
}
lomake.submit();
}


Kytket vaan tuon siihen lähetysnappiin seuraavasti:


Yksinkertainen toteutus mutta tekee juuri sen mitä kysyit, eli tarkistaa onko kenttä tyhjä ja jos on, ei lähetä lomaketta.

Äänestä
  • ...minulla on siinä vielä sellainen monivalintakysely. (Sellainen missä on niitä neliöitä ja saa valita vapaasti kuinka moneen rastin pistää) Kuinka siihen saa sellaisen, että on valittava vähintään yksi, ennen kuin pääsee lähettämään sen?

    Äänestä

  • mutta vielä... kirjoitti:

    ...minulla on siinä vielä sellainen monivalintakysely. (Sellainen missä on niitä neliöitä ja saa valita vapaasti kuinka moneen rastin pistää) Kuinka siihen saa sellaisen, että on valittava vähintään yksi, ennen kuin pääsee lähettämään sen?

    Laitoin head osaan koodin:


    function laheta(lomake) {

    if (lomake.elements['Etunimi'].value=="") {
    if (lomake.elements['Sukunimi'].value=="") {
    if (lomake.elements['Email'].value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.elements['Etunimi'].focus();
    lomake.elements['Sukunimi'].focus();
    lomake.elements['Email'].focus();
    return;
    }
    lomake.submit();
    }


    ja lähetä-painikkeesta tein tällaisen:



    Mikä tässä on vikana ku jos täytän pelkästään Email kohdan niin se menee heti läpi, vaikka ei pitäis? Ei siis välitä mitään lopuista kohdista.

    Äänestä

  • tämmöinen ongelma kirjoitti:

    Laitoin head osaan koodin:


    function laheta(lomake) {

    if (lomake.elements['Etunimi'].value=="") {
    if (lomake.elements['Sukunimi'].value=="") {
    if (lomake.elements['Email'].value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.elements['Etunimi'].focus();
    lomake.elements['Sukunimi'].focus();
    lomake.elements['Email'].focus();
    return;
    }
    lomake.submit();
    }


    ja lähetä-painikkeesta tein tällaisen:



    Mikä tässä on vikana ku jos täytän pelkästään Email kohdan niin se menee heti läpi, vaikka ei pitäis? Ei siis välitä mitään lopuista kohdista.

    "Mikä tässä on vikana"

    Siinä on vikana se, että homma on tehty Javascriptillä. Lomakkeet saadaan toimimaan hyvin ilman sitä. Koska lomakkeen tiedot kuitenkin joudutaan käsittelemään palvelimella, voidaan myös tarkistukset pakollisten kenttien täyttämisestä tehdä palvelimella. JS:llä voi tehdä esitarkistuksen jo selainpäässä, mutta se täytyy tehdä ns. oikein eli niin, että lomake toimii myös ilman JS:ää.

    Monet kytkevät nykyään JS:n tietoturvasyistä pois päältä, ja jossain yrityksissä jo palomuuri karsii webbisivuilta pois kaiken JS-sisällön.

    Äänestä

  • Strawman kirjoitti:

    "Mikä tässä on vikana"

    Siinä on vikana se, että homma on tehty Javascriptillä. Lomakkeet saadaan toimimaan hyvin ilman sitä. Koska lomakkeen tiedot kuitenkin joudutaan käsittelemään palvelimella, voidaan myös tarkistukset pakollisten kenttien täyttämisestä tehdä palvelimella. JS:llä voi tehdä esitarkistuksen jo selainpäässä, mutta se täytyy tehdä ns. oikein eli niin, että lomake toimii myös ilman JS:ää.

    Monet kytkevät nykyään JS:n tietoturvasyistä pois päältä, ja jossain yrityksissä jo palomuuri karsii webbisivuilta pois kaiken JS-sisällön.

    Perustelisitko Strawman miksi monet kytkisivät JS:n tietoturvasyistä pois päältä? Palomuuriin asetukset voi tietenkin määritellä itse mitä haluaa nähdä / käyttää.
    Ja oletetaan nyt että javascript on päällä.

    Äänestä

  • tämmöinen ongelma kirjoitti:

    Laitoin head osaan koodin:


    function laheta(lomake) {

    if (lomake.elements['Etunimi'].value=="") {
    if (lomake.elements['Sukunimi'].value=="") {
    if (lomake.elements['Email'].value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.elements['Etunimi'].focus();
    lomake.elements['Sukunimi'].focus();
    lomake.elements['Email'].focus();
    return;
    }
    lomake.submit();
    }


    ja lähetä-painikkeesta tein tällaisen:



    Mikä tässä on vikana ku jos täytän pelkästään Email kohdan niin se menee heti läpi, vaikka ei pitäis? Ei siis välitä mitään lopuista kohdista.

    suosittelisin java-ohjelmoinnin pikakurssia.

    Eli tuo menisi enemmänkin tähän tyyliin:



    function laheta(lomake) {

    if (lomake.Etunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Etunimi.focus();
    return;
    }

    if (lomake.Sukunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Sukunimi.focus();
    return;
    }

    if (lomake.Email.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Email.focus();
    return;
    }
    lomake.submit();
    }



    Tuota elements kohtaa ei välttämättä tartte. Eli jokainen tarkistus tarvitsee tietenkin oman if-lausekkeensa... Kannattaa tutustua vähän javan saloihin.... =)

    Äänestä

  • Jorma kirjoitti:

    suosittelisin java-ohjelmoinnin pikakurssia.

    Eli tuo menisi enemmänkin tähän tyyliin:



    function laheta(lomake) {

    if (lomake.Etunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Etunimi.focus();
    return;
    }

    if (lomake.Sukunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Sukunimi.focus();
    return;
    }

    if (lomake.Email.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Email.focus();
    return;
    }
    lomake.submit();
    }



    Tuota elements kohtaa ei välttämättä tartte. Eli jokainen tarkistus tarvitsee tietenkin oman if-lausekkeensa... Kannattaa tutustua vähän javan saloihin.... =)

    tuon voisi tehdä yhdelläkin ehdolla? eli kaikki pakolliset kentät ehtoon ja or väliin? focus kyllä palautuu aina etunimi kenttään mutta jos se ei häiritse, eihän tuo originaalikaan kerro sen kummemmin että onko tuo ensimmäisenä löytyvä puuttuva tieto myös ainoa.
    eli siis suunnilleen näin:



    function laheta(lomake) {

    if (lomake.Etunimi.value=="" || lomake.Sukunimi.value=="" || lomake.email.value=="" ){
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Etunimi.focus();
    return;
    }
    lomake.submit();
    }

    Äänestä

  • Jorma kirjoitti:

    suosittelisin java-ohjelmoinnin pikakurssia.

    Eli tuo menisi enemmänkin tähän tyyliin:



    function laheta(lomake) {

    if (lomake.Etunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Etunimi.focus();
    return;
    }

    if (lomake.Sukunimi.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Sukunimi.focus();
    return;
    }

    if (lomake.Email.value=="") {
    alert("Täytä kaikki vaadittavat kohdat");
    lomake.Email.focus();
    return;
    }
    lomake.submit();
    }



    Tuota elements kohtaa ei välttämättä tartte. Eli jokainen tarkistus tarvitsee tietenkin oman if-lausekkeensa... Kannattaa tutustua vähän javan saloihin.... =)

    "suosittelisin java-ohjelmoinnin pikakurssia."

    Juu, minäkin suosittelen. Java on ihan kiva kieli sellaisiin tarkoituksiin, joissa täytyy tehdä alustariippumattomia sovelluksia.

    Tuo sinun koodisi ei sen sijaan ole Javaa nähnytkään. Se on Javascriptiä, joka on *täysin* eri asia. JavaScript-kurssia sen sijaan en suosittele, koska ko. kieli on kohtalaisen turha, kuten tässäkin nähdään.

    Äänestä

  • Utelias kirjoitti:

    Perustelisitko Strawman miksi monet kytkisivät JS:n tietoturvasyistä pois päältä? Palomuuriin asetukset voi tietenkin määritellä itse mitä haluaa nähdä / käyttää.
    Ja oletetaan nyt että javascript on päällä.

    "Perustelisitko Strawman miksi monet kytkisivät JS:n tietoturvasyistä pois päältä?"

    Koska lähes kaikki madot ja troijalaiset, jotka tarttuvat WWW:n kautta, hyödyntävät Javasciprtiä. Ilman JS:ää on jokseenkin mahdotonta saada koneelleen pöpöjä webissä surfaamalla.

    Esim. veljeni koneen saan formatoida aina kerran parissa kuussa, kun IE on niin täynnä matoa, että ei sillä uskalla enää laskuja maksaa.

    "Palomuuriin asetukset voi tietenkin määritellä itse mitä haluaa nähdä / käyttää."

    Sanoin "yrityksissä". Palomuurin asetuksia ei todellakaan voi määritellä itse, vaan ATK-tuki/osasto/vast. hoitaa sen puolen.

    "Ja oletetaan nyt että javascript on päällä."

    Ei vaan juuri päinvastoin - jos siis halutaan toimivia webbisivuja tehdä. JS:ää voidaan käyttää hillitysti, kunhan sivujen kunnollinen toiminta on ensin testattu ilman sitä. En minä voi tietenkään kieltää ketään tekemästä rikkinäisiä sivuja, jos joku välttämättä haluaa.

    Äänestä

  • Strawman kirjoitti:

    "suosittelisin java-ohjelmoinnin pikakurssia."

    Juu, minäkin suosittelen. Java on ihan kiva kieli sellaisiin tarkoituksiin, joissa täytyy tehdä alustariippumattomia sovelluksia.

    Tuo sinun koodisi ei sen sijaan ole Javaa nähnytkään. Se on Javascriptiä, joka on *täysin* eri asia. JavaScript-kurssia sen sijaan en suosittele, koska ko. kieli on kohtalaisen turha, kuten tässäkin nähdään.

    Voi tehdä tietenkin yhdelläkin toistolla. Ratkaisuni ei ollut tarkoituskaan olla se ainoa oikea... Ajattelin että helpompi ymmärtää kun jokaiseen on omansa.

    Ja totta kyseessä on tietenkin JavaScript, mutta sekin on kyllä ihan Javaa... Eli ei se nyt *täysin* eri asia ole vaikka onkin aika eri asia... =)

    Äänestä

Kommentoi aloitusta


Haluaisin tietää kirjoitti:

Pitäisi saada lomakkeeseen sellainen "juttu" erääseen kenttään, että siihen on pakko laittaa jotain, että pääsee lähettämään sen.

KUINKA TEHDÄÄN?

Vastakkaa pian

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