Avatar billede tjensen Nybegynder
29. december 2004 - 20:39 Der er 9 kommentarer og
1 løsning

Test af input felt

Hey kære Guru'er!

Jeg har et input felt hvor folk skal angive deres fødselsdag, hvilket volder en del problemmer for folk at opgive det i det rigtige format, på trods af følgende eks. 1984-02-28

Derfor ville jeg gerne have en mere effektiv javascript test af feltet, mit nuværende er

if (document.opretdata.fdag.value == ""){
  alert("Du mangler udfylde fødselsdag");
  return false;   
}

Den skal altså teste om formatet er åååå-mm-dd.

Hilsen Thomas
Avatar billede tjensen Nybegynder
29. december 2004 - 20:42 #1
PS. Er der nogen hurtig kan svare på det her, ellers opretter jeg et ekstra spm.
Hvorfor virker det her ikke?
if (document.opretdata.tlfnr){
  if (!document.opretdata.tlfnr.value.match(/^\d{8}$/)) {
    alert("Ugyldigt telefonnummer.");
    return false;
  }
}
Avatar billede skovenborg Nybegynder
29. december 2004 - 21:08 #2
Prøv:
if (!document.opretdata.fdag.value.match(/^\d{4}\-\d{2}\-\d{2}$/)){
  alert("Du mangler udfylde fødselsdag");
  return false;
}

angående det andet spørgsmål ser det også ud til at virke, dog kommer det an på hvordan resten af siden ser ud.
Avatar billede tjensen Nybegynder
29. december 2004 - 21:11 #3
Argh, så begynder jeg at forstå (/^\d{8}$/))

Havde jeg set fra et andet sted uden at forstå :)

Afprøver det lige..
Avatar billede tjensen Nybegynder
29. december 2004 - 21:55 #4
hmm, lige pludselig er det som om den slet ikk virker!

Det her er hele min javascript (første gang jeg selv rigtig er igang med javascript... :)

Er det her helt forkert?

<script type="text/javascript">
function tjekOpret() {
    if (
        (document.opretdata.fornavn.value == "") ||
        (document.opretdata.efternavn.value == "") ||
        (document.opretdata.fdag.value == "") ||
        (document.opretdata.adresse.value == "") ||
        (document.opretdata.postnr.value == "") ||
        (document.opretdata.kommune.value == "");
        alert("Du skal udfylde de * markede felterne.");
        return false;
    }
    if (!document.opretdata.fdag.value.match(/^\d{4}\-\d{2}\-\d{2}$/)){
      alert("Du mangler udfylde fødselsdag");
      return false;
    }
    if (document.opretdata.familie.selectedIndex == "0") {
        alert("Du mangler at vælge familiegren");
        return false;   
    }
    if (document.opretdata.adgangskode.value == "") {
        alert("Husk at udfyld din adgangskode.");
        return false;   
    }
    if (document.opretdata.adgangskode.value != document.opretdata.genkode.value) {
        alert("Adgangskoderne stemmer ikke overens.");
        return false;
    }
    if (document.opretdata.tlfnr){
        if (!document.opretdata.tlfnr.value.match(/^\d{8}$/)) {
            alert("Ugyldigt telefonnummer.");
            return false;
        }
    }
    if (document.opretdata.mobil){
        if (!document.opretdata.mobil.value.match(/^\d{8}$/)) {
            alert("Ugyldigt mobilnummer.");
            return false;
        }
    }   
    document.opretdata.opret.disabled = "true";
}
</script>
Avatar billede tjensen Nybegynder
29. december 2004 - 22:58 #5
Okay, der var lidt af hvert i vejen. Har selv været meget slavisk igennem det, og mener det meste virker. Kan dog ikke få det med tlf nummerne til at virke.

    if (document.opretdata.tlfnr !=""){
        if (!document.opretdata.tlfnr.value.match(/^\d{8}$/)) {
            alert("Ugyldigt telefonnummer.");
            return false;
        }
    }
    if (document.opretdata.mobil != ""){
        if (!document.opretdata.mobil.value.match(/^\d{8}$/)) {
            alert("Ugyldigt mobilnummer.");
            return false;
        }
    }

Min plan er den kun skal teste det hvis der er indtastet noget.
Avatar billede roenving Novice
30. december 2004 - 12:03 #6
-- og den lidt mere brugervenlige udgave:

<script type="text/javascript">
function tjekOpret(f) {
    if (f.fornavn.value == ""){
      alert("Du skal udfylde de * markede felterne.");
      f.fornavn.focus();
      return false;
    }
    if (f.efternavn.value == ""){
      alert("Du skal udfylde de * markede felterne.");
      f.efternavn.focus();
      return false;
    }
    if (f.fdag.value == "" || !f.fdag.value.match(/^\d{4}\-\d{2}\-\d{2}$/)){
      alert("Du mangler udfylde fødselsdag");
      f.efternavn.focus();
      return false;
    }
    if (f.adresse.value == ""){
      alert("Du skal udfylde de * markede felterne.");
      f.adresse.focus();
      return false;
    }
    if (f.postnr.value == ""){
      alert("Du skal udfylde de * markede felterne.");
      f.postnr.focus();
      return false;
    }
    if (f.kommune.value == ""){
      alert("Du skal udfylde de * markede felterne.");
      f.kommune.focus();
      return false;
    }
    if (f.familie.selectedIndex == "0") {
      alert("Du mangler at vælge familiegren");
      f.familie.focus();
      return false;   
    }
    if (f.adgangskode.value == "") {
      alert("Husk at udfyld din adgangskode.");
      f.adgangskode.focus();
      return false;   
    }
    if (f.adgangskode.value != f.genkode.value) {
      alert("Adgangskoderne stemmer ikke overens.");
      f.adgangskode.focus();
      return false;
    }
    if (f.tlfnr.value=="" || !f.tlfnr.value.match(/^\d{8}$/)) {
      alert("Ugyldigt telefonnummer.");
      f.tlfnr.focus();
      return false;
    }
    if (f.mobil.value=="" || !f.mobil.value.match(/^\d{8}$/)) {
      alert("Ugyldigt mobilnummer.");
      f.mobil.focus();
      return false;
    }   
    return true;
}
</script>

-- og så skal du i formtagget checke sådan:

<form ... onsubmit="return tjekOpret(this);">

Javascript benytter short evaluation, så match-checket vil kun blive udført, såfremt der er skrevet noget i felterne !-)
Avatar billede tjensen Nybegynder
30. december 2004 - 12:09 #7
Argh men Roenving du er simpelthen dejlig, det er simpethen lige som jeg gerne vil have det, men ikk helt selv kunne bygge sammen!

Tak til skovenborg også!

Drop nogle svar, så laver jeg en lille sød fordeling af pointzene!
Avatar billede roenving Novice
30. december 2004 - 12:19 #8
Velbekomme '-)
Avatar billede roenving Novice
01. januar 2005 - 11:41 #9
-- og tak for point ;~}

>>skovenborg

Så er vi da op på et par ufordelte over nogle få dage, skal vi gøre noget ved det ?-)
Avatar billede skovenborg Nybegynder
04. januar 2005 - 21:19 #10
er vi det? Ja, det kan jeg ikke lige holde styr på ;-)

Jeg har desværre ikke haft mulighed for at følge meget med, da min mail er i "stykker" (den kan i hvert fald ikke modtage noget).
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