Avatar billede sunero Nybegynder
26. maj 2004 - 16:59 Der er 10 kommentarer og
1 løsning

Validering af ubekendt antal felter

Jeg har følgende ASP kode, hvor der kan komme et vilkårligt antal rækker.

<form action="O_Check3.asp" method="post" name="form1">

<% while lines < xxx %>

<input name="qty<%=lines%>" type="text" value="<%=RQty%">
<input id="Dato<%=lines%>" name="Date<%=lines%>">
<input name="lines" type="hidden" value="<%=lines%>">

<%
lines + 1
wend
%>

<input name="Continue" type="submit" value="Continue -->">           
Hvordan checker jeg dato1, dato2, osv. for datoformatet dd-mm-yyyy på alle datofelterne, og kan man få javascriptet til at placere sig på den første dato med fejl ?
Avatar billede roenving Novice
26. maj 2004 - 17:12 #1
<script type="text/javascript">
function valider(f){
  e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].name.indexOf('Date')==0&&(!e[i].value.match(/^\d\d-\d\d-\d{4}$|/)){
      alert('Fejl i datoformat');
      e[i].focus();
      return false;
    }
  }
  return true;
}
</script>

<form action="O_Check3.asp" method="post" name="form1" onsubmit="return valider(this)">

-- bemærk, at jeg har ladet den checke for gyldig dato eller tomt felt !-)
Avatar billede sunero Nybegynder
26. maj 2004 - 20:14 #2
Jeg kan desværre ikke få det til at virke, den loader bare den nye side. Og jeg kan desværre ikke lige gennemskue koden.


<html>
<head>
<script type="text/javascript">
function valider(f){
  e = f.elements;
  for(i=0;e.length>i;i++){
    if(e[i].name.indexOf('Date')==0&&(!e[i].value.match(/^\d\d-\d\d-\d{4}$|/)){
      alert('Fejl i datoformat');
      e[i].focus();
      return false;
    }
  }
  return true;
}
</script>
</head>
<body>

<form action="1.asp" method="post" name="form1" onsubmit="return valider(this)">
<%
lines = 1
while lines  < 6
%>

<input name="qty<%=lines%>" type="text" value="<%=lines%>">
<input id="Dato<%=lines%>" name="Date<%=lines%>">
<input name="lines" type="hidden" value="<%=lines%>">
<br>
<%
lines = lines + 1
wend
%>

<input name="Continue" type="submit" value="Continue -->">   
</body>
</html>
Avatar billede roenving Novice
26. maj 2004 - 20:35 #3
-- du mangler </form> !-)

<input name="Continue" type="submit" value="Continue -->">
</form>
</body>
</html>
Avatar billede sunero Nybegynder
26. maj 2004 - 21:54 #4
Er sat ind, men det virker stadig ikke. Er det fordi jeg er en JS knold eller hvad ! ;-)
Avatar billede roenving Novice
26. maj 2004 - 21:56 #5
Du har bemærket, at jeg har tilladt at felterne er tomme ...
Avatar billede sunero Nybegynder
27. maj 2004 - 13:14 #6
Lige meget hvad jeg sætter ind i felterne godkender den det, så der må være en fejl. Mit bud er i disse to linier :

if(e[i].name.indexOf('Date')==0&&(!e[i].value.match(/^\d\d-\d\d-\d{4}$|/)){

og

<input id="Dato<%=lines%>" name="Date<%=lines%>">

Hvis formen heller ikke skal acceptere blanke er det så "$|" der skal fjernes ?
Avatar billede sunero Nybegynder
27. maj 2004 - 13:26 #7
Jeg tror jeg har fundet fejlen, ved at ændre på linierne i JS og formen :

if(e[i].id.indexOf('Date')==0&&(!e[i].value.match(/^\d\d-\d\d-\d{4}/))){

og

<input id="Date" name="Date<%=lines%>">

>> roenving : læg lige et svar så få du point, for at lave det meste af arbejdet.
Avatar billede sunero Nybegynder
27. maj 2004 - 13:35 #8
Men kan det lade sig gøre selvom man har forskellige id's og names ?

<input id="Date<%=lines%>" name="Date<%=lines%>">

id    name
date1  date1
date2  date2
.      .
.      .
Avatar billede roenving Novice
27. maj 2004 - 16:30 #9
Ja, det er fuldt lovligt at have forskellig id og name !-)

-- og velbekomme '-)
Avatar billede sunero Nybegynder
28. maj 2004 - 09:06 #10
Mange tak for hjælpen.
Avatar billede roenving Novice
28. maj 2004 - 12:21 #11
-- og jeg takker for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester