Avatar billede lgadex Nybegynder
30. maj 2002 - 10:06 Der er 4 kommentarer og
2 løsninger

Brug af en funtion i en anden funktion

Jeg har en formular, hvor jeg skal ud fra indtastede værdier P1 og P2 skal checke, om der er tale om en vakuum-pumpe eller en tryk-pumpe.
Jeg har defineret i 2 funktioner, hvad der skal til for at der er tale om vakuum eller tryk og disse funktioner kalder jeg så i en anden funktion.
Jeg har brug for at få en værdi med ud af scriptet, som jeg kan sende videre fra formularen til den side formularen submitter til.
Dette er jeg ikke sikker på hvordan det gøres.

I nedenstående kode har jeg forsøgt med alert at få funktionen til at fortælle, om det er den ene eller den anden type, men selv om jeg indtaster værdier som opfylder kravene, får jeg ikke nogen alert frem på skærmen. Hvorfor gør jeg ikke det?

<script language="JavaScript">
function checkpump(){
var p1 = parseFloat(document.customerDataForm.P1.value);
var p2 = parseFloat(document.customerDataForm.P2.value);
var vacuum = "Vacuum";
var pressure = "Pressure";
var type;

if (isVacuum(p1,p2)) {       
    type = vacuum;
    alert(type)
    return true;
    }   
else if (isPressure(p1,p2))     {   
    type = pressure;
    alert(type)
    return true;
    }
}

function isVacuum(p1,p2){
    return ((p1 > 0.475) &&  (p1 < 0.925) && (p2 > 0.975) && (p2 < 1.025) && (p1 < p2) && ((p2/p1)<=2))
}

function isPressure(p1,p2){
    return ((p1 > 0.975) &&  (p1 < 1.025) && (p2 > 1.075) && (p2 < 2.025) && (p1 < p2) && ((p2/p1)<=2))
}

</script>
Avatar billede =maddog= Nybegynder
30. maj 2002 - 11:23 #1
øhm. kunne man få to værdier der opfylder kravene.
umiddelbart virker det, hvis jeg sætter funktionerne til at returnere true uanset.
Avatar billede lgadex Nybegynder
30. maj 2002 - 11:33 #2
vakuum: p1=0.5 & p2=1.0
pressure: p1=1.0 & p2=1.5
Avatar billede lgadex Nybegynder
30. maj 2002 - 11:36 #3
egentlig fremgår det tydeligt af funktionerne isVacuum og isPressure hvilke værdier der opfylder kravene ;-)
Avatar billede =maddog= Nybegynder
30. maj 2002 - 11:39 #4
jaja godt så. dine funktioner virker fint. der er knas i maskinen andre steder. følgende virker (kun testet IE6.0) hos mig:

<html><head><script>
function checkpump(){
var p1 = parseFloat(document.customerDataForm.P1.value);
var p2 = parseFloat(document.customerDataForm.P2.value);
var vacuum = "Vacuum";
var pressure = "Pressure";
var type;

if (isVacuum(p1,p2)) {       
    type = vacuum;
    alert(type)
    return true;
    }   
else if (isPressure(p1,p2))    {   
    type = pressure;
    alert(type)
    return true;
    }
}

function isVacuum(p1,p2){
    return ((p1 > 0.475) &&  (p1 < 0.925) && (p2 > 0.975) && (p2 < 1.025) && (p1 < p2) && ((p2/p1)<=2))
}

function isPressure(p1,p2){
    return ((p1 > 0.975) &&  (p1 < 1.025) && (p2 > 1.075) && (p2 < 2.025) && (p1 < p2) && ((p2/p1)<=2))
}


</script></head><body>
<form name="customerDataForm" onsubmit="checkpump();return false;">
<input type="text" name="P1">
<input type="text" name="P2">
<input type="submit" name="send">
</form>
</body></html>
Avatar billede lgadex Nybegynder
30. maj 2002 - 14:56 #5
Når jeg tester det som ren html virker det faktisk også fint, ser jeg nu.
Det viste sig ganske rigtigt at fejlen lå et helt andet sted.
Det havde jeg dog ikke fundet ud af så hurtigt, hvis det ikke havde været for dine kommentarer =maddog=
Jeg er ret ny i javascript og det er nogle ganske avancerede ting jeg er i gang med at lave i både javascript og asp, så jeg havde stirret mig blind på selve javascriptet.
Tusind tak for hjælpen.
Jeg vil godt give dig halvdelen af pointene for at have ledt mig på rette spor.
Avatar billede =maddog= Nybegynder
30. maj 2002 - 16:38 #6
okey. det ser også en anelse avanceret ud.
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