25. januar 2007 - 13:32
Der er
8 kommentarer og 1 løsning
Validering af felt
Jeg vil gerne have folk skal skrive: 18-10-1973 Når de udfylder deres føsdato... er der nogen der kan hjælpe med det ? :-) Her kan I se den vaildering jeg bruger nu.. <SCRIPT LANGUAGE="JavaScript"> function Check_Form(theForm) { err = ''; if (theForm.dato.value == '') { err += "Fødelsdato mangler\r"; } if (theForm.email.value == '') { err += "E-mail mangler\r"; } else { ema = theForm.email.value; pos1 = ema.indexOf('@',0); pos2 = ema.indexOf('.',pos1); str = ema.substring(ema.length-1,ema.length+1); if (pos1 < 0 || pos2 < 0 || str == '.') { theForm.email.style.color = '#FFFFFF'; theForm.email.style.backgroundColor = '#FF0000'; err += "E-mail ikke gyldig\r"; } } if (err != ''){ alert('Følgende felter mangler at blive udfyldt:\r' + err); return (false); } else { return (true); } } </script>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
25. januar 2007 - 13:46
#1
sorry det ser sådan her ud: if (theForm.dato.value == '' || parseInt(theForm.dato.value) != theForm.dato.value ) { err += "Fødelsdato skal være et tal"; } else if ( theForm.dato.value.length != 8 ) { err += "Fødelsdato skal være 8 tal";
26. januar 2007 - 05:39
#2
Uden at teste om datoen er en valid dato (til det skal du omkring et Date-objekt !-) if(!theForm.dato.value.match(/^\d\d-\d\d-\d{4}$/)) err += "Fødelsdato mangler eller er forkert format\r";
26. januar 2007 - 06:06
#3
Da datoformatet på Date-objektet ikke passer med det ønskede format må man skille den indtastede værdi ad og indstille datokomponenterne hver for sig. var datoFormat = new RegExp("^(\d\d)-(\d\d)-(\d{4})$"); var enDato = new Date(); var datoOk = false; if ( theForm.dato.value.match(datoFormat) ) { try { enDato.fullYear = parseInt(RegExp.$3); enDato.month = parseInt(RegExp.$2)-1; enDato.date = parseInt(RegExp.$1); datoOk = true; } catch (error) { ; // Ignore error } } if (!datoOk) { err += "Format for fødselsdag: DD-MM-ÅÅÅÅ\r" }
26. januar 2007 - 06:09
#4
Øeh, hvad er 'enDato.fullYear' ?-)
26. januar 2007 - 06:20
#5
ja - der skulle ha' stået: enDato.setFullYear( parseInt(RegExp.$3), parseInt(RegExp.$2)-1), parseInt(RegExp.$1)); og ikke noget med enDato.month eller enDato.date. ;o)
26. januar 2007 - 06:29
#6
-- men du tester jo heller ikke, om værdierne virker ?-) if(theForm.dato.value.match(/^\d\d-\d\d-\d{4}$/)){ var d = theForm.dato.value.split("-"); var cDate = new Date(d[2],d[1]-1,d[0]); if(d[2] != cDate.getFullYear() || d[1] != cDate.getMonth()+1 || d[0] != cDate.getDate()) err += "Fødselsdato er ugyldig\n"; }else{ err += "Fødselsdato mangler eller er forkert format\r"; }
27. januar 2007 - 00:31
#7
Dato objektet er meget venligt til at tolke 'forkerte' værdier ved at justere andre felter, uden at generere en exception som jeg fejlagtigt antog - sorry. 26/01-2007 06:29:30 ser ud til at være det rigtige. M.h.t. fejlmeddelelser mener jeg at det er mere brugervenligt at forklare hvilket format der forventes, og ikke bare meddele at formatet er forkert.
27. januar 2007 - 00:35
#8
-- sådan noget forventer jeg findes på siden i forvejen, for ellers brugeren jo ikke en chance !-)
02. februar 2007 - 00:41
#9
roenving bør ha' point for sit indlæg 26/01-2007 06:29:30.
Vi tilbyder markedets bedste kurser inden for webudvikling