Avatar billede hollow Nybegynder
07. marts 2010 - 00:28 Der er 15 kommentarer og
1 løsning

Hente en værdi ind i mit formular felt

Hey jeg sidder med et lille problem med en skole opgave jeg er igang med..

Jeg har en formular som skal kunne regne et resultat ud fra nogle værdier som er fast definerede..

Problemet er at jeg ikke aner hvordan jeg får resultatet vist i et af mine formular felter..

Min kode: "den korte version"

<form id="calc" method="post" action="#" onsumbit="return calc()">

<input type="text" id="value_1" name="value_1"/>
<input type="text" id="value_2" name="value_2"/>
<input type="text" id="result" name="result"/>
<input type="submit" name="calculate" value="Calculate"/>

</form



// Mit Javascript

function calc(){
var value_1 = document.getElementById("value_1");
var value_2 = document.getElementById("value_2");

var result = value_1 * value_2;

////**** Det er så her jeg ikke aner hvad jeg skal gøre..
////**** Jeg vil gerne have den til at smide resultatet tilbage
////**** i det formular felt som jeg har kaldt result??
////**** Lidt hjælp ville være super.. På forhånd tak

}
Avatar billede kjeldsted Novice
07. marts 2010 - 00:31 #1
document.getElementById('result').innerHTML = result;
Smides ind efter var result = value_1 * value_2;

Quite simple.
Avatar billede kjeldsted Novice
07. marts 2010 - 00:40 #2
Desuden har du også en anden fejl.

var value_1 = document.getElementById("value_1");
var value_2 = document.getElementById("value_2");

Er vist ikke helt det du ønsker. Som det er nu er value_1 og value_2 objekter, som indeholder alt info om de to inputs (CSS oplysninger, indhold m.m.). Så husk lige at kald den ønskede værdi fra objektet.
Avatar billede hollow Nybegynder
07. marts 2010 - 00:41 #3
Det ser ikke ud til at virke.. Jeg har skrevet det ind som du referer til, men det ser ikke ud til at virke.. hvis jeg skriver

alert(calc_result); // så får jeg resultatet

document.getElementById('total').innerHTML = calc_result;
// Så får jeg intet resultat.. bare et blankt felt?
Avatar billede kjeldsted Novice
07. marts 2010 - 00:44 #4
Se ovenstående kommentar, hvis du ikke allerede har opdaget dén ;)
Avatar billede hollow Nybegynder
07. marts 2010 - 00:48 #5
Har prøvet at ændre det til:

var value_1 = document.getElementById("value_1").value;
var value_2 = document.getElementById("value_2").value;

Men det virker stadig ikke..

Kan det have noget at gøre med at jeg har en masse if sætninger som validere min formular i den function jeg kalder?
Avatar billede kjeldsted Novice
07. marts 2010 - 01:03 #6
Æh. Prøv at poste hele JS scriptet så.
Avatar billede hollow Nybegynder
07. marts 2010 - 01:14 #7
Ret primitivt I know :P

function booking(){
var trip = document.getElementById("trip").value;
var date_day = document.getElementById("date_day").value;
var date_month = document.getElementById("date_month").value;
var date_year = document.getElementById("date_year").value;
var duration = document.getElementById("duration").value;
var travelers = document.getElementById("travelers").value;
var stars = document.getElementById("stars").value;
var rooms = document.getElementById("rooms").value;
   
var trip_alert = "Du skal v\u00E6lge en rejse";
var date_day_alert = "Du skal indtaste en dato";
var date_month_alert = "Du skal v\u00E6lge en m\u00E5ned";
var date_year_alert = "Du skal v\u00E6lge et \u00E5r";
var duration_alert = "Du skal v\u00E6lge rejsens varighed";
var travelers_alert = "Du skal v\u00E6lge et antal rejsende";
var stars_alert = "Du skal v\u00E6lge hvormange stjerner dit hotel skal have";
var rooms_alert = "Du skal v\u00E6lge et antal v\u00E6relser";
   
    if (trip == "0") {
        alert(trip_alert);
        document.getElementById("trip").focus();
        return false;
    } else if (date_day == "0") {
        alert(date_day_alert);
        document.getElementById("date_day").focus();
        return false;
    } else if (date_month == "0") {
        alert(date_month_alert);
        document.getElementById("date_month").focus();
        return false;
    } else if (date_year == "0") {
        alert(date_month_alert);
        document.getElementById("date_year").focus();
        return false;
    } else if (duration == "0") {
        alert(duration_alert);
        document.getElementById("duration").focus();
        return false;
    } else if (travelers == "0") {
        alert(travelers_alert);
        document.getElementById("travelers").focus();
        return false;
    } else if (stars == "0") {
        alert(stars_alert);
        document.getElementById("stars").focus();
        return false;
    } else if (rooms == "0") {
        alert(roomsalert);
        document.getElementById("rooms").focus();
        return false;
    } else {
       
var base = trip;
var multiply_duration = duration;
var multiply_travelers = travelers;
var base_hotel = stars;
var multiply_rooms = rooms;
       
var calc_1 = base * multiply_duration;
var calc_2 = calc_1 * multiply_travelers;
var calc_3 = base_hotel * multiply_rooms;
var calc_4 = calc_3 * multiply_duration;
var calc_result = calc_2 + calc_4;

       
       
// Mit alternativ til feedback fra min pris udregner
var message = "din rejse koster ";
var message2 = ",-";
alert(message + calc_result + message2);
return false;
    }
}
Avatar billede hollow Nybegynder
07. marts 2010 - 01:18 #8
Her kommer så min HTML form..

<form id="booking" method="post" action="#" onsubmit="return booking()">
                       
<div class="form_input">
<label>V&aelig;lg din rejse:</label><br/>
<select name="trip" size="1" id="trip">
<option value="0">V&aelig;lg venligst</option>
<option value="5000">Rejse 1 - Eventyret</option>
<option value="9000">Rejse 2 - Kultur oplevelsen</option>
<option value="12000">Rejse 3 - Den fulde oplevelse</option>
</select>
</div><!-- form_input END -->

                     
<div class="form_input">
<label>Afrejse dato:</label><br/>
<input type="text" id="date_day" name="date_day" value="<?=date("d")?>" size="2" maxlength="2"/>
                             
<select name="date_month" size="1" id="date_month">
<option>Januar</option>
<option>Februar</option>
<option>Marts</option>
<option>April</option>
<option>Maj</option>
<option>Juni</option>
<option>Juli</option>
<option>August</option>
<option>September</option>
<option>Oktober</option>
<option>November</option>
<option>December</option>
</select>

                             
<select name="date_year" size="1" id="date_year">
<option><?=date("Y")?></option>
<option><?=date("Y"+1)?></option>
<option><?=date("Y"+2)?></option>
<option><?=date("Y"+3)?></option>
</select>
                             
</div><!-- form_input END -->
                         
<div class="form_input">
<label>Hvorl&aelig;nge &oslash;nsker du at v&aelig;re afsted:</label><br/>
<select name="duration" size="1" id="duration">
<option value="0">V&aelig;lg venligst</option>
<option value="1">1 uge</option>
<option value="2">2 uger</option>
<option value="3">3 uger</option>
<option value="4">4 uger</option>
<option value="5">5 uger</option>
<option value="6">6 uger</option>
<option value="7">7 uger</option>
<option value="8">8 uger</option>
<option value="9">9 uger</option>
<option value="10">10 uger</option>
<option value="11">11 uger</option>
<option value="12">12 uger</option>
</select>
</div><!-- form_input END -->
                         
<div class="form_input">
<label>Antal personer:</label><br/>
<select name="travelers" size="1" id="travelers">
<option value="0">V&aelig;lg venligst</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div><!-- form_input END -->
                           
                         
<div class="form_input">
<label>Antal stjerner:</label><br/>
<select name="stars" size="1" id="stars">
<option value="0">V&aelig;lg venligst</option>
<option value="1500">3 stjerner</option>
<option value="2000">4 stjerner</option>
<option value="2500">5 stjerner</option>
</select> 
</div><!-- form_input END -->

<div class="form_input">
<label>Antal v&aelig;relser:</label><br/>
<select name="rooms" size="1" id="rooms">
<option value="0">V&aelig;lg venligst</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</div><!-- form_input END -->

<div class="form_input">
<input type="submit" name="calculate" id="calculate" value="Calculate"/>
<input type="reset" value="Reset" />
</div><!-- form_input END -->

</form>
Avatar billede hollow Nybegynder
07. marts 2010 - 01:20 #9
Hvis du vil se det in action så prøv det her link

http://olde86.dk/us/vitilbyder.booking.php
Avatar billede kjeldsted Novice
07. marts 2010 - 01:26 #10
Øh. Virker det ikke som det skal?
Avatar billede hollow Nybegynder
07. marts 2010 - 01:43 #11
Nu har jeg lige uploaded igen :) Hvis du vil kan du jo lige se igen.. jeg får ikke den værdi i Feltet som jeg gerne vil have..
Avatar billede hollow Nybegynder
07. marts 2010 - 01:58 #12
Tror sgu bare jeg dropper det.. Jeg laver bare en alert box istedet og så må man ski nøjs :P Men ellers tak for hjælpen... du kan evt smide svar så får du for ulejligheden :)
Avatar billede intenz Novice
07. marts 2010 - 12:53 #13
Hvis det her ikke virker

document.getElementById('total').innerHTML = calc_result;

er det fordi du enten ikke har et felt med id=total (jeg kan heller ikke se det i din html kode) eller fordi calc_result ikke noget indhold (hvilket det ser ud som om det gør i din alert).

Har du tilføjet det tag hvor total skal vises?
f.eks.
<div id="total"></div>
Avatar billede kjeldsted Novice
07. marts 2010 - 16:02 #14
Og så tag også lige en kigger i din JS fil:

{
       
        var base = trip;
        var multiply_duration = duration;
        var multiply_travelers = travelers;
        var base_hotel = stars;
        var multiply_rooms = rooms;
       
        var calc_1 = base * multiply_duration;
        var calc_2 = calc_1 * multiply_travelers;
        var calc_3 = base_hotel * multiply_rooms;
        var calc_4 = calc_3 * multiply_duration;
        var calc_result = calc_2 + calc_4;
       
        var message = "din rejse koster ";
        var message2 = ",-";
        alert(message + calc_result + message2);
        return false;
    }

Du beder den jo ikke om at gøre andet end en alert. Men som intenz skriver. Hvis du skriver document.getElementById('total').innerHTML = calc_result; i din JS fil samt tilføjer <div id='total'></div> i din html kode, vil det virke. Det vil i hvert fald være uden fejl.
Avatar billede hollow Nybegynder
22. juni 2010 - 16:00 #15
nice smid svar.. sorry forsinkelsen.. mener jeg fik det til at virke selv
Avatar billede kjeldsted Novice
22. juni 2010 - 17:57 #16
Svar
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