Avatar billede cyrusdk Nybegynder
16. marts 2004 - 11:15 Der er 8 kommentarer og
1 løsning

Dato validering i form - problem

Nedenstående kode virker ikke som den skal.
Det der skal gøres er at if(!form.date+i.value.match(reg)) skal, når javascriptet afvikles hedde if(!form.date1.value.match(reg)).
Dvs, at if-sætningens date-del skifter tal hver gang for-sætningen udføres (date1, date2, date3, osv).

Hvad skal jeg ændre for at det kommer til at virke?

function validateDate(form)
  {
    reg = /^\d{1,2}\-\d{1,2}\-\d{4}$/;
    c = document.timeplan.rows.value+document.timeplan.fldCount.value;
    for (i=1; i<=c; i++)
      {
          if(!form.date+i.value.match(reg))
          {
            form.date.select();
            form.date.focus();
            return false;
          }
        }
  }

Jeg kalder funktionen når formen submittes:
<form action="../entry/update_schedule.asp" method="post" name="timeplan" onsubmit="return validateDate(this)">
Felterne der skal valideres består af noget asp kode og noget java script:

ASP:

Response.Write("<td width='125'><input name='date" & counter & "' type='text' class='middle' value='" & rs("date") & "' onkeypress='return validateInput(document.timeplan.date" & counter & ".value, document.timeplan.action" & counter & ".value, event.keyCode);'></td>")

java script:
objDetail1.innerHTML = "<input name='date<%= counter %>' type='text' class='middle' onkeypress='return validateInput(document.timeplan.date<%= counter %>.value, document.timeplan.action<%= counter %>.value, event.keyCode)'>";
Avatar billede mm12010 Nybegynder
16. marts 2004 - 11:22 #1
if(!form.elements['date'+i].value.match(reg))
Avatar billede cyrusdk Nybegynder
16. marts 2004 - 14:43 #2
Nu er der bare et lille problem...
Når den finder en dato der ikke er korret, så submitter den alligevel formen. Kan du se hvor jeg har fejlen?
Avatar billede mm12010 Nybegynder
16. marts 2004 - 16:15 #3
hvordan submitter du din form?
Avatar billede mm12010 Nybegynder
16. marts 2004 - 16:16 #4
onsubmit indtræder ikke hvis du bruger .submit()
Avatar billede cyrusdk Nybegynder
16. marts 2004 - 16:41 #5
Jeg submitter den med en knap tilsidst i formen:
<input name="Submit" type="submit" value="Update Schdule">
Avatar billede mm12010 Nybegynder
16. marts 2004 - 22:08 #6
prøv:

          if(!form.elements['date'+i].value.match(reg))
          {
            form.elements['date'+i].select();
            form.elements['date'+i].focus();
            return false;
          }
Avatar billede roenving Novice
16. marts 2004 - 22:20 #7
function validateDate(form){
  reg = /^[0-3]?\d\-[01]?\d\-\d{4}$/;
  c = form.rows.value+form.fldCount.value;
  for (i=1; i<=c; i++){
    if(!form.elements['date'+i].value.match(reg)){
      form.elements['date'+i].select();
      form.elements['date'+i].focus();
      return false;
    }
  }
  return true;
}
Avatar billede cyrusdk Nybegynder
17. marts 2004 - 09:45 #8
Så funker det :) Tusind tak mm12010 og roenving.
Stik mig lige et svar så kaster jeg nogle point :)

-Thomas
Avatar billede mm12010 Nybegynder
17. marts 2004 - 10:08 #9
selv tak :o)
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