Avatar billede mazey Praktikant
13. januar 2004 - 22:26 Der er 12 kommentarer og
1 løsning

Tal skema

Hejsa, jeg har et lille problem nu da jeg er noob i Javascript verdenen.
Jeg skal lave et skema hvor man skal kunne indtaste et nummer (også decimal, dog kun én decimal) ind i en box, hvorfra der så i resultat feltet bliver vist et andet... hvis man f.eks. indtaster et tal mellem 5,0 og 5,8 bliver tallet 6 vist... Det er udfra et skema at tallet bliver valgt... dvs. ovenstående eksempel er noget fra skemaet...
Jeg skal sådan set have lavet kode som siger noget med at er tallet mellem 5,0 - 5,8 skal 6 vises i output feltet.
er tallet mellem 5,9 - 6,7 skal tallet 7 vises osv.
Håber nogen har en idé... når den første linie er lavet, er det vel bare copy - paste og så ændre værdierne?
Jeg har forsøgt i PHP men det går nu pænt langsomt inden det er "regnet ud"

Mvh.

Mazey
Avatar billede whatever Nybegynder
13. januar 2004 - 23:31 #1
Hvordan ser det ud du har lavet i PHP?
Avatar billede mazey Praktikant
13. januar 2004 - 23:33 #2
<?php
if(isset($_POST['tal'])) {
    $tal = $_POST['tal'];
    if ($tal >= 5 && $tal <= 5.8) {
        echo 6;
    } elseif ($tal >= 5.9 && $tal <= 6.7) {
        echo 7;
    } elseif ($tal >= 6.8 && $tal <= 7.5) {
        echo 8;
    } else {
        echo "tallet var ikke i en af de angivne intervaller";
    }
}
?>

Det tager ca. 2-3 sekunder fra man trykker til resultatet kommer... og det er lige lang tid nok, og så tænkte jeg at det garanteret kunne gøres bedre med Java
Avatar billede roenving Novice
13. januar 2004 - 23:48 #3
Jamen det kan det også -- og med næsten samme kode:

function setValue(fld){
    tal = +fld.value;
    newFld = document.getElementById('nyVaerdi');
    if (tal >= 5 && tal <= 5.8) {
        newFld.value = 6;
    } elseif (tal >= 5.9 && tal <= 6.7) {
        newFld.value = 7;
    } elseif (tal >= 6.8 && tal <= 7.5) {
        newFld.value = 8;
    } else {
        newFld.value = "tallet var ikke i en af de angivne intervaller";
    }
}

<input type="text" onchange="setValue(this)">

-- hvad forøvrigt med 5,9 ?-)
Avatar billede mazey Praktikant
14. januar 2004 - 00:11 #4
Ja, det ligner da til dels PHP... men hvad så hvis man skal lave en submit knap og et input felt... det skal gerne være så man indtaster i ét felt og får resultatet i et andet...
Avatar billede roenving Novice
14. januar 2004 - 00:16 #5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/451190">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">

</style>
<script language="javascript" type="text/javascript">
function setValue(fld){
    tal = +fld.value;
    newFld = document.getElementById('resultat');
    if (tal >= 5 && tal <= 5.8) {
        newFld.value = 6;
    } else if (tal > 5.8 && tal <= 6.7) {
        newFld.value = 7;
    } else if (tal > 6.7 && tal <= 7.5) {
        newFld.value = 8;
    } else {
        newFld.value = "tallet var ikke i en af de angivne intervaller";
    }
}

</script>
</head>
<body>
<br>
<form id="minForm" name="minForm">
<input id="minInput" name="minInput" type="text" value="Tom" onchange="setValue(this)" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">
<br>
<input id="resultat" name="resultat" type="text" size="30" disabled>
</form>
</body>
</html>

-- og bemærk mit spørgsmål om kommaet !-)
Avatar billede mazey Praktikant
14. januar 2004 - 00:20 #6
-- hvad forøvrigt med 5,9 ?-)... Det er et index i et handicap i golf... man har et index som på enhver anden golfbane kan give et handicap (hel tal)...

Det du lige har givet mig virker fint, men det ville være bedre med en knap... kan den laves om til det?
Avatar billede roenving Novice
14. januar 2004 - 00:25 #7
Hvor skal der være en knap ?-)
Avatar billede mazey Praktikant
14. januar 2004 - 00:26 #8
Det skulle gerne være sådan at man skrev sit handicap i input feltet for derefter at trykke på "submit" - Og handicappet for den givne bane vises i output feltet...
Avatar billede roenving Novice
14. januar 2004 - 00:36 #9
Er det sådan ?-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/451190">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">

</style>
<script language="javascript" type="text/javascript">
function setValue(fld){
    tal = +fld.value;
    newFld = document.getElementById('resultat');
    if (tal >= 5 && tal <= 5.8) {
        newFld.value = 6;
    } else if (tal > 5.8 && tal <= 6.7) {
        newFld.value = 7;
    } else if (tal > 6.7 && tal <= 7.5) {
        newFld.value = 8;
    } else {
        newFld.value = "tallet var ikke i en af de angivne intervaller";
    }
}

</script>
</head>
<body>
<br>
<form id="minForm" name="minForm">
<input id="minInput" name="minInput" type="text" value="Tom" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">
<br><input type="button" value="Vis handicap" onclick="setValue(this.form.minInput)"><br>
<input id="resultat" name="resultat" type="text" size="40" disabled>
</form>
</body>
</html>

-- problemet med kommaet er, at man normalt på dansk angiver decimal-værdier med et komma, men da man internationalt angiver decimal-tal med et punktum giver det en fejl ...

Spørgsmålet er så, om javascriptet skal tage højde for det problem !-)
Avatar billede mazey Praktikant
14. januar 2004 - 00:39 #10
Lige præcis Roenving.... det er perfekt... du har ret i det med kommaet... tror nu nok de fleste vil skrive det med et "dansk" komma ","... Kan det lade sig gøre at man kan skrive det på begge måder? -Hvis nej, tror jeg at det bare skal være det "danske" komma..
Avatar billede roenving Novice
14. januar 2004 - 00:43 #11
Vi snakker kun om det enkelte ciffer, som muligvis kommer efter et komma, så er det ikke så svært !o]

(Hvis der nu var mulighed for at skrive meget store tal, ville den internationale tusind-adskiller forstyrre !-)

Du skal bare ændre linjen:

    tal = +(fld.value.replace(",","."));


-- så skulle det være: Velbekomme '-)
Avatar billede mazey Praktikant
14. januar 2004 - 00:45 #12
Super lækkert... tak for den professionelle kompetence!
Mazey
Avatar billede roenving Novice
14. januar 2004 - 00:51 #13
-- og tak for points ;~}
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