03. oktober 2003 - 14:09
Der er
9 kommentarer og 1 løsning
Skal være et mellemrum!
Hej eksperter! Har en validering af et dato felt, som jeg skal have udvidet til at den istedet for kun "dd-mm-åååå" kan tage "dd-mm-åååå tt:mm", men det er ikke lykkedes mig at validere på at tegn 10 skal være et mellemrum, syntes jeg har prøvet alt...! Min kode: if(myDate.length == 16){ if(!(myDate.charAt(10)==" ")){ alert("fejl: \""+myDate.charAt(10)+"\"") return false } } Håber nogen kan hjælpe???
Annonceindlæg fra Computerworld it-jobbank
03. oktober 2003 - 14:13
#1
Jeg er ikke Java-kyndig men skal length ikke være length()? + semikolon efter false?
03. oktober 2003 - 14:22
#2
det her virker hamrende godt =) <html> <script language="JavaScript"> function check() { myDate = document.getElementById('text').value; if(myDate.length == 16) { if(!(myDate.charAt(10)==" ")) { alert("fejl: \""+myDate.charAt(10)+"\""); return false; } } } </script> <input type="text" id="text"><br> <input type="button" value="Check" onClick="check();">
03. oktober 2003 - 14:31
#3
Hmmmm... Meget underligt, dit svar virker fint, men mit virker stadig ikke... Her er hele koden, håber stadig på hjælp... ;-) unction checkDate(myDate){ var myDate = myDate.replace(/^\s*(.*?)\s*$/, "$1"); if(myDate != "" && myDate.length != 10 && myDate.length != 16){ return false } if(myDate.length == 16){ if(!(myDate.charAt(10)==" ")){ alert("Fejl 10: \""+myDate.charAt(10)+"\"") return false }else if(myDate.charAt(13) != ":"){ alert("Fejl 13: \""+myDate.charAt(10)+"\"") return false } } if(myDate.charAt(2) != "-" || myDate.charAt(5) != "-"){ return false } for (i=0; i<myDate.length; i++) { if (i!=2 && i!=5 && i!=10 && i!=13) { if (myDate.charAt(i) < "0" || myDate.charAt(i) > "9"){ return false } } } return true }
03. oktober 2003 - 14:36
#4
kigger
03. oktober 2003 - 14:38
#5
hvis jag testar dette: <html> <script language="JavaScript"> function check(myDate) { var myDate = myDate.replace(/^\s*(.*?)\s*$/, "$1"); if(myDate != "" && myDate.length != 10 && myDate.length != 16) { return false } if(myDate.length == 16) { if(!(myDate.charAt(10)==" ")) { alert("Fejl 10: \""+myDate.charAt(10)+"\"") return false } else if(myDate.charAt(13) != ":") { alert("Fejl 13: \""+myDate.charAt(10)+"\"") return false } } if(myDate.charAt(2) != "-" || myDate.charAt(5) != "-") { return false } for (i=0; i<myDate.length; i++) { if (i!=2 && i!=5 && i!=10 && i!=13) { if (myDate.charAt(i) < "0" || myDate.charAt(i) > "9") { return false } } } return true } </script> <input type="text" id="text"><br> <input type="button" value="Check" onClick="alert(check(document.getElementById('text').value));"> så kan jeg se at det virker (min alert-box siger true hvis indtastningen er korrekt) er du sikker på at du sender in rætt stræng? hvordan kalder du funktionen og hvar exakt er fejlen?
03. oktober 2003 - 14:43
#6
Har du ikke fjernet mellemrummet med var myDate = myDate.replace(/^\s*(.*?)\s*$/, "$1");
03. oktober 2003 - 14:50
#7
erikjacobsen >> nu er jeg ikke så go til reg.exp. men det virker som det står nu, så jeg tror ikke mellemrummet førsvinner.
03. oktober 2003 - 14:58
#8
Har selv fundet fejlen... Det var fordi jeg havde brug " " som mellemrum mellem dato og tid, og det kunne JavaScriptet altså åben bart ikke forstå!!!
03. oktober 2003 - 14:59
#9
Nogen der evt. ved hvad myDate.charAt(10) skal være lige med når der er brugt " "...! Bare nysgerig!
03. oktober 2003 - 21:38
#10
myDate.substring(10,16)==" "
Vi tilbyder markedets bedste kurser inden for webudvikling