Avatar billede tblaster Nybegynder
09. december 2003 - 11:06 Der er 4 kommentarer og
1 løsning

Funktion der undersøger tid accepter Semikolon

Hejsa

Jeg har denne function som checker om en angivet tid er i formatet 08:30. Men mit problem er at den også accepter formatet 08;30. Hvordan undgår jeg at den accepter ";" (Semikolon)?

Function Check_Tid(InputNavn, Besked)
    dim str
    str = " reg = /^([0-1][0-9])|(2[0-3])\:[0-5][0-9]$/" & VbCrLf
    str = str & "if((document.SaveForm." & InputNavn & ".value.length != 5) && (!document.SaveForm." & InputNavn & ".value.match(reg))){" & VbCrLf
    str = str & "  alert(""" & Besked & """);" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".select();" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".focus();" & VbCrLf
    str = str & "  return false;" & VbCrLf
    str = str & "}" & VbCrLf
   
    str = str & "if(document.SaveForm." & InputNavn & ".value.length != 5) {" & VbCrLf
    str = str & "  alert(""" & Besked & """);" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".select();" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".focus();" & VbCrLf
    str = str & "  return false;" & VbCrLf
    str = str & "}" & VbCrLf
   
    Check_Tid = str
End function
Avatar billede roenving Novice
09. december 2003 - 16:44 #1
Hvordan kaldes javascript-funktionen ?-)
Avatar billede tblaster Nybegynder
09. december 2003 - 18:11 #2
Response.write Check_Tid("StartTid", "Start tiden er ikke gyldig. Den skal være i formatet 07:53")
Avatar billede roenving Novice
09. december 2003 - 18:15 #3
Hvornår sker det ?-)

For mig ser det ud som om der slet ikke eksisterer en javascript-funktion men kun en vbscript-funktion, som kun kan udføres server-side ?-)
Avatar billede tblaster Nybegynder
09. december 2003 - 20:02 #4
Hele check dele ser således ud:

Response.write "<form method='post' onsubmit=""return valider(this);"" action=' ...(bla bla bla) "

Response.write "<script language=""javascript"" type=""text/javascript"">" & VbCrLf
Response.write "function valider(f){" & VbCrLf
Response.write Check_Tid("StartTid", "Start tiden er ikke gyldig")
Response.write "}" & VbCrLf
Response.write "</script>" & VbCrLf

Det bliver udskrevet til følgende:

function valider(f){

reg = /^([0-1][0-9])|(2[0-3])\:[0-5][0-9]$/
if((document.SaveForm.StartTid.value.length != 5) && (!document.SaveForm.StartTid.value.match(reg))){
  alert("Start tiden er ikke gyldig. Den skal være i formatet 07:53");
  document.SaveForm.StartTid.select();
  document.SaveForm.StartTid.focus();
  return false;
}
if(document.SaveForm.StartTid.value.length != 5) {
  alert("Start tiden er ikke gyldig. Den skal være i formatet 07:53");
  document.SaveForm.StartTid.select();
  document.SaveForm.StartTid.focus();
  return false;
}

}
</script>

Det skal sige at den fint nok melder fejl ved indtastning af tid som 42:12. Alle tallne undersøger den fint nok. Problemet er altså kun at den ikke melder fejl hvis det ikke er et kolon ":" men et semi kolon ";". Er der evt. en der ellers kan hjælpe med at lave et checke der kan kædes sammen med overstående der undersøger om værdien på 3 position er et kolon ":" ??
Avatar billede tblaster Nybegynder
10. december 2003 - 10:29 #5
str = str & "val = document.SaveForm." & InputNavn & ".value;" & VbCrLf
      str = str & "if (!val.match(/^\d{2}:\d{2}$/) || parseInt(val.split("":"")[0], 10) > 23 || parseInt(val.split("":"")[1], 10) > 59) {" & VbCrLf
    str = str & "  alert(""" & Besked & """);" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".select();" & VbCrLf
    str = str & "  document.SaveForm." & InputNavn & ".focus();" & VbCrLf
    str = str & "  return false;" & VbCrLf
      str = str & "    }" & VbCrLf
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