Ik heb een validatie van FangorN in mn pagina staan. Het is een simpel gastenboek. Het script van FangorN trimt de inputs en kijkt dan of de opgegeven velden wel ingevuld zijn. Zoniet, window.alert dat dit moet. Nou wil ik maken dat je in 't e-mailadres 1 '@' moet hebben, en minimaal 1 '.' . Hoe kan ik dit maken? dit is de functie voor het controleren of de velden name en message wel ingevuld zijn. Dit staat onder de trim-functie, die heb ik dus wel erbij.
function check_form(frm)
{
var ret = true; // initieel is alles goed
if(trim(frm.elements['Name'].value) == "")
{
ret = false;
window.alert("Please fill in your name");
frm.elements['Name'].value = ""; // value bevatte toch onzin
frm.elements['Name'].focus();
}
if(trim(frm.elements['Message'].value) == "")
{
ret = false;
window.alert("Please enter a message");
frm.elements['Message'].value = ""; // value bevatte toch onzin
frm.elements['Message'].focus();
}
return ret;
}
Ziet er goed uit, alleen moet de regexp eindigen met een $ (je matcht immers een compleet e-mailadres)? Het deel na de @ zou ook niet leeg mogen zijn (?), dus misschien van die * een + maken?
@Henri: ik verwacht niet dat er bots op de site komen. We zijn nog maar een onbekende band. de enige berichten die ik in het gastenboek verwacht zijn van vrienden/kenissen
ik vind 't zo wel handig, want ik heb nu een validatie die controleert of Name en Message zijn ingevuld, als dat niet zo is komt er een window.alert. ik ga 't eens proberen. uhm.. domme vraag, maar hoe kan ik die functie in de check_frm functie zetten, zodat dit veld ook wordt doorgelopen? gewoon de functie Email_Check boven de check_frm functie zetten, net als de Trim-declaratie, en dan vervolgens dit stukje:
in de functie check_frm zetten? wordt er nu 'woopie' ge-alert als 't klopt? want als 't klopt, moet ie eik niets doen. kan ik dat oplossen door 't zo te doen?
Dat is inderdaad een domme vraag if(Email_Check(this.value) == true) {
Dus als het niet true moet zijn: if(Email_Check(this.value) != true) {
En dat is inderdaad meestal dus false.
gelukkig, 't werkt!
zelfs met mijn gebrekkige kennis van JavaScript is 't me gelukt het stukje in te bouwen. Ik zal me keurig aan de regels houden en de oplossing erbij zetten:
//hierboven staat de trim-functie
function Email_Check(val) {
var myRegxp = /^[\d\w-_.]+\@[\d\w-_.]+\.[\d\w]{2,4}$/;
return myRegxp.test(val);
}
function check_form(frm)
{
var ret = true; // initieel is alles goed
if(trim(frm.elements['Name'].value) == "")
{
ret = false;
window.alert("Please fill in your name");
frm.elements['Name'].value = ""; // value bevatte toch onzin
frm.elements['Name'].focus();
}
if(trim(frm.elements['E-mail'].value) != "")
{
if(Email_Check(this.value) == false) {
ret = false;
window.alert('Please fill in a valid e-mailaddress');
frm.elements['E-mail'].value = ""; // value bevatte toch onzin
frm.elements['E-mail'].focus();
}
}
if(trim(frm.elements['Message'].value) == "")
{
ret = false;
window.alert("Please enter a message");
frm.elements['Message'].value = ""; // value bevatte toch onzin
frm.elements['Message'].focus();
}
return ret;
}
//hierboven staat de trim-functie
function Email_Check(val){
var myRegxp =/^[\d\w-_.]+\@[\d\w-_.]+\.[\d\w]{2,4}$/;
frm.elements['Message'].value ="";// value bevatte toch onzin
frm.elements['Message'].focus();
}
return ret;
}
bedankt iedereen! edit: dit topic kan dicht edit 2: ik heb het vanmiddag op school geprobeerd, maar als je een geldig e-mailadres invoert (paul@why-online.com) zegt ie dat 't fout is. dus er zit toch nog een foutje in 't script.
wat gebeurt er trouwens in de functie Check_Email? nu staat 't er zo, maar ik zou graag weten wat er gebeurt. daar leer ik van, en ik wil ook een soortelijke validatie maken voor een website-inputveld. Dus als ik snap wat er gebeurt, kan ik dat zelf maken..
@marten: dankje, ik zal 't doornemen
@FangorN: ik weet niet wat 't doet, dat heeft BramBo gescript. Ik weet wel dat als ik 't weghaal, de hele functie check_form niet meer werkt (ik krijg geen window.alerts meer als ik geen naam of message invoer).
@BramBo: bedankt, ik snapte 't al niet (mijn kennis van JavaScript is niet veel, heb bijna zomervakantie, dus dat komt wel)
@Henri: hoe komen bots dan aan je site? en als ze geldige e-mailadressen gebruiken is de enige bewapening een code die je moet overtypen, maar dat is nog te moeilijk om te maken. En tegen de tijd dat ik last heb van een bot heb kan ik dat wel maken ;)