Avatar billede nemlig Professor
18. oktober 2009 - 13:07 Der er 3 kommentarer og
2 løsninger

Funktion som skal virke på flere felter

Hejsa.
Jeg har tidligere fået hjælp til denne kode.
Men koden kan jeg kun få til at virke på ét inputfelt.
Hvordan får jeg den til at virke på flere inputfelter.

<html>
<head>

<script language="JavaScript">

function timeValidator(timeStr) {
    var formattedTime = new String();
    var timeSep = timeStr;
    //Erstat alle punktummer med kolon.
    timeSep = timeSep.replace(/\./g, ':');
    //Split timer og minutter fra hinanden
    timeSep = timeSep.split(':', 2);
   
    var hour = timeSep[0];
    var minute = timeSep[1];
   
    var isValid = true;
   
    //Hvis ikke der er angivet minutter, så går vi ud fra det skal være 00.
    if(minute == null || minute == '')
        minute = '00';
   
    //isNaN = is Not a Number. Funktionen returnerer altså true hvis det ikke er et tal
    //(og det er jo det eneste vi vil arbejde med her, så hvis der bliver returneret true,
    //sættes isValid til false.)
    if(isNaN(hour) || isNaN(minute))
        isValid = false;
   
    //Vi tjekker om tallene stemmer overens med et tidsformat vi kender.
    if(hour > 23 || hour == null || hour < 0)
        isValid = false;
   
    if(minute > 59 || minute == null || minute < 0)
        isValid = false;
   
    if(!isValid) {
        alert('Tiden er ikke angivet i korrekt format! (00:00)');
    } else {
        //Hvis der er angivet et tal under 10 sikrer vi os, at der kommer et nul foran
        if(hour < 10 && hour.length == 1)
            formattedTime = '0';
        formattedTime += hour + ':';
   
        if(minute < 10 && minute.length == 1)
            formattedTime += '0';
        formattedTime  += minute;
       
        document.timeform.time.value = formattedTime;
    }
}
</script>
</head>

<body>

<center>
<form name=timeform>
<input type=text name=time onBlur="timeValidator(document.timeform.time.value);"><br>
</form>
</center>
Avatar billede virtual1ty Nybegynder
18. oktober 2009 - 13:48 #1
Tror at jeg endelig fandt ud af det..

<html>
<head>

<script language="JavaScript">

function timeValidator(timeStr, form) {
    var formattedTime = new String();
    var timeSep = timeStr;
   
    //Erstat alle punktummer med kolon.
    timeSep = timeSep.replace(/\./g, ':');
    //Split timer og minutter fra hinanden
    timeSep = timeSep.split(':', 2);
 
    var hour = timeSep[0];
    var minute = timeSep[1];
 
    var isValid = true;
 
    //Hvis ikke der er angivet minutter, så går vi ud fra det skal være 00.
    if(minute == null || minute == '')
        minute = '00';
 
    //isNaN = is Not a Number. Funktionen returnerer altså true hvis det ikke er et tal
    //(og det er jo det eneste vi vil arbejde med her, så hvis der bliver returneret true,
    //sættes isValid til false.)
    if(isNaN(hour) || isNaN(minute))
        isValid = false;
 
    //Vi tjekker om tallene stemmer overens med et tidsformat vi kender.
    if(hour > 23 || hour == null || hour < 0)
        isValid = false;
 
    if(minute > 59 || minute == null || minute < 0)
        isValid = false;
 
    if(!isValid) {
        alert('Tiden er ikke angivet i korrekt format! (00:00)');
    } else {
        //Hvis der er angivet et tal under 10 sikrer vi os, at der kommer et nul foran
        if(hour < 10 && hour.length == 1)
            formattedTime = '0';
        formattedTime += hour + ':';
 
        if(minute < 10 && minute.length == 1)
            formattedTime += '0';
        formattedTime  += minute;
     
        form.value = formattedTime;
    }
}
</script>
</head>

<body>

<center>
<form name="timeform">
<input type=text name="time" onBlur="timeValidator(this.value, this);">
<input type=text name="time2" onBlur="timeValidator(this.value, this);">
<br>
</form>
</center>

</body>
</html>


Virker i hvert fald her.
Avatar billede mbm2016 Nybegynder
18. oktober 2009 - 13:49 #2
Hvad siger du til denne kode?


<html>
<head>

<script language="JavaScript">

function timeValidator(obj) {
    var timeStr = obj.value;
    var formattedTime = new String();
    var timeSep = timeStr;
    //Erstat alle punktummer med kolon.
    timeSep = timeSep.replace(/\./g, ':');
    //Split timer og minutter fra hinanden
    timeSep = timeSep.split(':', 2);
   
    var hour = timeSep[0];
    var minute = timeSep[1];
   
    var isValid = true;
   
    //Hvis ikke der er angivet minutter, så går vi ud fra det skal være 00.
    if(minute == null || minute == '')
        minute = '00';
   
    //isNaN = is Not a Number. Funktionen returnerer altså true hvis det ikke er et tal
    //(og det er jo det eneste vi vil arbejde med her, så hvis der bliver returneret true,
    //sættes isValid til false.)
    if(isNaN(hour) || isNaN(minute))
        isValid = false;
   
    //Vi tjekker om tallene stemmer overens med et tidsformat vi kender.
    if(hour > 23 || hour == null || hour < 0)
        isValid = false;
   
    if(minute > 59 || minute == null || minute < 0)
        isValid = false;
   
    if(!isValid) {
        alert('Tiden er ikke angivet i korrekt format! (00:00)');
    } else {
        //Hvis der er angivet et tal under 10 sikrer vi os, at der kommer et nul foran
        if(hour < 10 && hour.length == 1)
            formattedTime = '0';
        formattedTime += hour + ':';
   
        if(minute < 10 && minute.length == 1)
            formattedTime += '0';
        formattedTime  += minute;
       
        obj.value = formattedTime;
    }
}
</script>
</head>

<body>

<center>
<form name="timeform">
<input type="text" onblur="timeValidator(this);"><br>
<input type="text" onblur="timeValidator(this);"><br>
</form>
</center>
Avatar billede nemlig Professor
18. oktober 2009 - 21:50 #3
Jeg takker for begge jeres bidrag, som indfrier mit behov.
Jeg har gjort brug af mbm2007's løsning, og det virker perfekt.
Sender I begge et svar og jeg fordeler pointene.
Avatar billede mbm2016 Nybegynder
18. oktober 2009 - 22:01 #4
Værsgo :=)
Avatar billede virtual1ty Nybegynder
19. oktober 2009 - 07:49 #5
Og værsgo ;)
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