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
KUINKA TEHDÄÄN?
Vastakkaa pian
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
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.
...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.
"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ä.
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();
}
"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.
"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.
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... =)