12. marts 2008 - 20:36
Der er
13 kommentarer og 1 løsning
validering af dynamisk array
har en dynamisk række tal f.eks. 1,3,5,7,34,45,67,89 som ikke må tastes i nr feltet - hvordan validerer jeg for det har følgende form og validering <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function Form2_Validator(form2){ if (document.form2.nr.value=='') { alert("Angiv nummer."); document.form2.nr.focus(); return false; } if (document.form2.tekst.value=='') { alert("Angiv tekst"); document.form2.tekst.focus(); return false; } else { return true; } } //--> </SCRIPT> <form name="form2" method="post" action="" onSubmit="return Form2_Validator(this)"> <input type="text" name="nr"><br> <input type="text" name="tekst"><br> <input type="submit" name="Submit" value="ok test"> </form>
Annonceindlæg tema
13. marts 2008 - 00:19
#1
<ole> Ligger tallene kommasepareret i en streng - eller i et array? /mvh </bole>
13. marts 2008 - 06:56
#2
de bliver hentet fra en db og kan lægges som de skal bruges med komma eller andet til en streng
13. marts 2008 - 12:27
#3
Burde være noget i stil med: ---------------------------- <script language="javascript" type="text/javascript"> <!-- function Form2_Validator(form2){ var arr=new Array("1","3","5","7","34","45","67","89"); if(document.form2.nr.value==''){ alert("Angiv nummer."); document.form2.nr.focus(); return false; } if(document.form2.tekst.value==''){ alert("Angiv tekst."); document.form2.tekst.focus(); return false; } for(var i=0;i<arr.length;i++){ if(document.form2.nr.value==arr[i]){ alert("Forbudt nr."); document.form2.nr.focus(); return false; } } return true; } //--> </SCRIPT> <form name="form2" method="post" action="" onsubmit="return Form2_Validator(this)"> <input type="text" name="nr"><br> <input type="text" name="tekst"><br> <input type="submit" name="Submit" value="ok test"> </form>
13. marts 2008 - 14:15
#4
Hvis du indsætter dem i en streng med \b|\b som deler kan det gøres rigtigt simpelt: var tal = "\b1\b|\b3\b|\b5\b|\b7\b|\b34\b|\b45\b|\b67\b|\b89\b"; var reg = new RegExp("^(" + tal + ")$"); -- og så: if(dinVaerdi.match(reg)){ //et af dine ulovlige tal er til stede }else{ //Ingen ulovlige tal !-) } -- \b betyder ordgrænse og bruges, så 73 ikke bannes, selv om både 3 og 7 er ulovlige !o]
13. marts 2008 - 15:46
#5
jeg kigger lige på det og vender stærkt tilbage imorgen - god aften
13. marts 2008 - 16:26
#6
roenving >> Det var præcis årsagen til, jeg spurgte ;o) Din RegExp-løsning holder dog ikke. Den bør se sådan ud: var tal = "1|3|5|7|34|45|67|89"; var reg = new RegExp("^(" + tal + ")$"); -- og så: if(dinVaerdi.match(reg)){ //et af dine ulovlige tal er til stede }else{ //Ingen ulovlige tal !-) } Det virker netop ikke med de '\b', du har sat ind - og da du bruger '^' og '$' bliver 73 ikke anset for at være et ulovligt tal med mit talmønster :)
13. marts 2008 - 23:43
#7
Sådan er det, når tre forskellige tanker krydser hinanden ...
18. marts 2008 - 07:26
#8
øv - hvad gør jeg forkert - det virker ikke <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function Form2_Validator(form2){ if (document.form2.nr.value=='') { alert("Angiv nummer."); document.form2.nr.focus(); return false; } var tal = "140013|140011|140010|140009|140008|140006|1"; var reg = new RegExp("^(" + tal + ")$"); if(document.form2.nr.match(reg)) { alert("NR. er brugt"); document.form2.nr.focus(); return false; } if (document.form2.tekst.value=='') { alert("Angiv tekst"); document.form2.tekst.focus(); return false; } else { return true; } } //--> </SCRIPT> <form name="form2" method="post" action="" onSubmit="return Form2_Validator(this)"> <input type="text" name="nr"><br> <input type="text" name="tekst"><br> <input type="submit" name="Submit" value="ok test"> </form>
01. april 2008 - 12:35
#9
Hvordan virker det ikke? Hvilken fejl får du?
01. april 2008 - 12:48
#10
den kører bare igennem uden validering - prøv det script jeg sidst har lagt.
01. april 2008 - 13:06
#11
Hvis du slår visning af JavaScript-fejl til, får du en fejlmeddelelse om (i mit tilfælde) linje 19 ("if(document.form2.nr.match(reg))"): Objektet understøtter ikke denne egenskab eller metode.
01. april 2008 - 13:07
#12
Prøv at rette: if(document.form2.nr.match(reg)) til: if(document.form2.nr.value.match(reg)) :)
07. april 2008 - 15:15
#13
super nu virker det - undskyld ventetiden, men har ikke haft tid til at tjekke op på det før nu - tak for hjælpen.
07. april 2008 - 15:29
#14
Og tak for point. =)
Vi tilbyder markedets bedste kurser inden for webudvikling