Avatar billede websam Nybegynder
19. oktober 2004 - 17:06 Der er 19 kommentarer og
1 løsning

Diverse beregninger ?

Hejsa,

Jeg sidder og skal have lavet et stykke javascript der kan håndtere følgende :

1. Jeg har et felt hvor det f.eks kun må være tilladt at kunne taste en længde mellem 500 og 2000 mm.

2. Et andet felt hvor der skal indtastes en radius, hvor denne skal have et min/max indtastning afhænnigt af hvad der er skrevet i feltet ovenfor.

F.eks indtastes der 500 mm i det første felt må der min/max kunne indtastes 15 til 25 i andet felt, eller 1000 mm giver det muliged for at kunne taste 15 til 40, bare for at prøve at give et eksempel.

Er dette forståeligt, muligt og er der en der kan hjælpe med dette ?

/Websam
Avatar billede olebole Juniormester
19. oktober 2004 - 17:11 #1
<ole>

... og hvis brugeren udfylder felt #2 først?

/mvh
</bole>
Avatar billede websam Nybegynder
19. oktober 2004 - 17:13 #2
Ja det skulle jo helst ikke kunne lade sig gøre :o)

/Websam
Avatar billede olebole Juniormester
19. oktober 2004 - 17:15 #3
Hvad er den reelle afhængighed mellem de to felter? 15-40 kan vi jo godt lege med - men for at undgå at lave det mange gange, kunne det være fedt at vide, hvordan det præcist skal bruges  :)
Avatar billede websam Nybegynder
19. oktober 2004 - 17:24 #4
Det skal præcist bruges på den måde at udgangs punktet er en træplade på 1000 x 2000 mm hvor der så skal laves en runding på for og/eller bagkant og det samme i enderne hvis der så tastes f.eks 800 mm for bredde og 1800 for længde kan der max laves en buehøjde på 1 x 200 mm eller 2 x 100 mm og en buebredde på 1 x 200 mm eller 2 x 100 mm.

Håber det hjælper på forståelsen ?

/Websam
Avatar billede olebole Juniormester
19. oktober 2004 - 17:49 #5
Tjoohh ... det ville nu have været rart at kende lidt mere til validerings-algoritmen. Så er det lettere at skrive noget begavet  :)
Anyway, så kan du forhåbentligt se, hvordan du kan ændre valideringen i dette script, der viser fremgangsmåden:

<script type="text/JavaScript">
function checkAllowed(elm, f) {
    if (f.myWidth.value=="" || isNaN(f.myWidth.value)) {
        elm.value = "";
        f.myWidth.select();
    }
    if (f.myHeight.value=="" || isNaN(f.myHeight.value)) {
        elm.value = "";
        f.myHeight.select();
    }
}
function validateForm(f) {
    if ( f.myRad.value>100 && f.myWidth.value<1000 && f.myHeight.value<500 ) {
        alert("En besked");
        f.myRad.select();
        return false;
    }
    else if ( f.myRad.value>200 && f.myWidth.value<2000 && f.myHeight.value<1000 ) {
        alert("En anden besked");
        f.myRad.select();
        return false;
    }
    return true;
}
</script>

<form action="en_side.php" method="post" onsubmit="return validateForm(this)">
    <input type="text" name="myWidth">
    <input type="text" name="myHeight">
    <input type="text" name="myRad" onfocus="checkAllowed(this, this.form)">
    <button type="submit">TEST</button>
</form>
Avatar billede websam Nybegynder
19. oktober 2004 - 17:54 #6
Ok det vil jeg lige kigge på når jeg har fået noget at spise :o)

/websam
Avatar billede websam Nybegynder
19. oktober 2004 - 19:08 #7
Hmmmm.... Det er nok mig der ikke forstår at forklare det for det er ikke helt korrekt endnu :o)

Hvis jeg f.eks prøver at taste 1850 i bredden og 850 i højden så skulle det jo automatisk være sådan sådan at man ikke kunne taste mere i radius end det resterende op til den fulde plade bredde og højde 2000 x 1000 altså et resultat der giver et overskud på 150 mm til at lave en radius.

Jeg ved ikke om det hjalp, men den rest der er efter at der er valgt bredde og højde skal automatisk være den højde der er max for indtastningen i radius feltet.

/Websam
Avatar billede roenving Novice
19. oktober 2004 - 19:10 #8
*lol*

-- det havde jeg i hvert fald heller ikke gennemskuet !-)
Avatar billede olebole Juniormester
19. oktober 2004 - 19:16 #9
fair enough - men hvad nu, hvis jeg skriver 1850 og 890? Skal vi så udløse en fejl ved 111+ ?
Avatar billede olebole Juniormester
19. oktober 2004 - 19:21 #10
.... og hvormange pladestørrelser har du i øvrigt? Det kan være, du skal have hjælp af et array for at begrænse validerings funktionen
Avatar billede websam Nybegynder
19. oktober 2004 - 19:21 #11
Nej for jeg glemte at skrive at feltet bredde skal svare til feltet buebredde og feltet dybde skal svare til feltet buedybde så der på den måde er 4 felter og ikke 3 det var min fejl SORRY :o)

/Websam
Avatar billede olebole Juniormester
19. oktober 2004 - 19:26 #12
... antal forskellige pladestørrelser?
Avatar billede websam Nybegynder
19. oktober 2004 - 19:31 #13
CITAT :
".... og hvormange pladestørrelser har du i øvrigt? Det kan være, du skal have hjælp af et array for at begrænse validerings funktionen"

jeg har lige snakket med min makker og der er kun en pladestørelse og den er helt nødagtig 1200 x 2000 mm. var det svar nok ?

/Websam
Avatar billede olebole Juniormester
19. oktober 2004 - 19:44 #14
Jamen, så må det vel være noget à la:

<script type="text/JavaScript">
function checkAllowed(elm, f) {
    if (f.myWidth.value=="" || isNaN(f.myWidth.value)) {
        elm.value = "";
        f.myWidth.select();
    }
    if (f.myHeight.value=="" || isNaN(f.myHeight.value)) {
        elm.value = "";
        f.myHeight.select();
    }
}
function validateForm(f) {
    if ( f.myRad1.value>(2000-f.myWidth.value) ) {
        alert("For stor krumning til denne bredde");
        f.myRad1.select();
        return false;
    }
    if ( f.myRad2.value>(1200-f.myHeight.value) ) {
        alert("For stor krumning til denne dybde");
        f.myRad2.select();
        return false;
    }
    return true;
}
</script>

<form action="en_side.php" method="post" onsubmit="return validateForm(this)">
    <input type="text" name="myWidth">
    <input type="text" name="myHeight">
    <input type="text" name="myRad1" onfocus="checkAllowed(this, this.form)">
    <input type="text" name="myRad2" onfocus="checkAllowed(this, this.form)">
    <button type="submit">TEST</button>
</form>
Avatar billede websam Nybegynder
19. oktober 2004 - 19:55 #15
Ok så er det tæt på, kan du hjælpe med hvis der f.eks ikke er tastet noget i en af felterne så må den jo ikke bare gå videre til næste side men lige give en besked om at der skal tastet i de givne felt ?!?

/Websam
Avatar billede roenving Novice
19. oktober 2004 - 19:58 #16
Det er da det, den gør ?-)
Avatar billede roenving Novice
19. oktober 2004 - 20:00 #17
Arh ... den tester slet ikke om felterne har indhold overhovedet ...

<script type="text/JavaScript">
function checkAllowed(elm, f) {
    f = elm.form;
    if (f.myWidth.value=="" || isNaN(f.myWidth.value)) {
        elm.value = "";
        f.myWidth.select();
    }
    if (f.myHeight.value=="" || isNaN(f.myHeight.value)) {
        elm.value = "";
        f.myHeight.select();
    }
}
function validateForm(f) {
    if ( f.myRad1.value=='' || f.myRad1.value>(2000-f.myWidth.value) ) {
        alert("For stor krumning til denne bredde");
        f.myRad1.select();
        return false;
    }
    if ( f.myRad2.value=='' || f.myRad2.value>(1200-f.myHeight.value) ) {
        alert("For stor krumning til denne dybde");
        f.myRad2.select();
        return false;
    }
    return true;
}
</script>

<form action="en_side.php" method="post" onsubmit="return validateForm(this)">
    <input type="text" name="myWidth">
    <input type="text" name="myHeight">
    <input type="text" name="myRad1" onfocus="checkAllowed(this)">
    <input type="text" name="myRad2" onfocus="checkAllowed(this)">
    <button type="submit">TEST</button>
</form>

-- og jeg fik lige lejlighed til at demonstrere min dovenskab ...
Avatar billede roenving Novice
19. oktober 2004 - 20:01 #18
-- og meddelelsen kunne så være f.eks.

        alert("Manglende krumning eller for stor krumning til denne bredde");
Avatar billede websam Nybegynder
27. oktober 2004 - 10:14 #19
Smid et svar hvis der skal point på bordet ?

/Websam
Avatar billede websam Nybegynder
22. marts 2005 - 15:04 #20
Lukker da i ikke ser ud til at vil have point :o)

/Websam
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