Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Jsem začínající programátor a snažím se vytvořit kalkulačku na počítání s úhly. Zatím vytvářím jen část, která bude převádět úhlové minuty, vteřiny atd.
Poradil by mi prosím někdo, co dělám špatně?

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" />°
        <input type="text" id="minuty" size="3" />'
        <input type="text" id="vteriny" size="3" />''
        <button id="tlacitko">Převeď!</button>
        <script>
        window.onload = function() {
    var stupne = document.getElementById("stupne");
    var minuty = document.getElementById("minuty");
    var vteriny = document.getElementById("vteriny");
    var tlacitko = document.getElementById("tlacitko");
    function preved() {
        if ((vteriny.value / 60) > 0 )
        {
            var bonusMinuty = vteriny.value / 60;
            var vterinyNove = vteriny.value - (bonusMinuty * 60);
        }
        if ((minuty.value / 60) > 0)
        {
            var bonusStupne = minuty.value / 60;
            var minutyNove = minuty.value + bonusMinuty - (bonusStupne * 60);
        }
        var stupneNove = stupne.value + bonusStupne;
        alert(stupneNove + "° " + minutyNove + "' " + vterinyNove + "''" );
    }
    tlacitko.onclick = preved();

};
        </script>
    </body>
</html>
Odpovědět 27.10.2015 17:58
Say me, why not?
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

jestli se nepletu tak v inputu pracuješ s řetězcem...

takový figl (lze ti i kultivovaněji :)

var stupne = document.getElementById("stupne").value * 1;
var minuty = document.getElementById("minuty").value * 1;
var vteriny = document.getElementById("vteriny").value * 1;
var tlacitko = document.getElementById("tlacitko").value * 1;
Nahoru Odpovědět 27.10.2015 21:04
Čím víc vím, tím víc věcí nevím.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

a ještě:

<button id="tlacitko" onclick="preved();">Převeď!</button>
Nahoru Odpovědět 27.10.2015 21:06
Čím víc vím, tím víc věcí nevím.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

Koukám, že celé to máš dost zmatené,co takhle:

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" />°
        <input type="text" id="minuty" size="3" />'
        <input type="text" id="vteriny" size="3" />''
        <button id="tlacitko" onclick="preved();">Převeď!</button>
        <script>

    function preved() {
        var stupne = document.getElementById("stupne").value *1;
        var minuty = document.getElementById("minuty").value *1;
        var vteriny = document.getElementById("vteriny").value *1;
        x = vteriny + (minuty * 60) + (stupne * 60 *60);
        novestupne = Math.floor(x / (60 * 60));
        noveminuty = Math.floor((x - (novestupne * 60 * 60)) / 60);
        novevteriny = x - (novestupne * 60 * 60) - (noveminuty * 60);
        alert(novestupne + "° " + noveminuty + "' " + novevteriny + "''" );
    }

      </script>
    </body>
</html>
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 27.10.2015 21:22
Čím víc vím, tím víc věcí nevím.
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Děkuji za pomoc, trochu jsem se do toho zamotal.

Nahoru Odpovědět 2.11.2015 18:04
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Ještě jsem se chtěl zeptat, jak mám udělat tlačítko "Vynulovat", které by vymazalo všechny textové inputy a jak udělat, aby se výsledek zobrazil pod zadání příkladu. Když dám totiž na konec "document.write()", tak mi to vymaže všechen obsah a zobrazí jen výsledek.

Nahoru Odpovědět 2.11.2015 19:18
Say me, why not?
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na iqbigbang
David Hynek:

to už ta funkce dělá... potvora :)

upravil jsem předchozí...

<!DOCTYPE html>
<html>
    <head>
        <title>Kalkulačka úhlů</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <h1>Kalkulačka úhlů</h1>
        <input type="text" id="stupne" size="3" value="0" />°
        <input type="text" id="minuty" size="3" value="0" />'
        <input type="text" id="vteriny" size="3" value="0" />''
        <button id="tlacitko" onclick="preved();">Převeď!</button> <button onclick="nuluj();">Reset!</button>
        <p id="vysledek"></p>
        <script>

    function preved() {
        var stupne = document.getElementById("stupne").value *1;
        var minuty = document.getElementById("minuty").value *1;
        var vteriny = document.getElementById("vteriny").value *1;
        x = vteriny + (minuty * 60) + (stupne * 60 *60);
        novestupne = Math.floor(x / (60 * 60));
        noveminuty = Math.floor((x - (novestupne * 60 * 60)) / 60);
        novevteriny = x - (novestupne * 60 * 60) - (noveminuty * 60);
        document.getElementById("vysledek").innerHTML = "Výsledek: "+novestupne + "° " + noveminuty + "' " + novevteriny + "''" ;
    }

    function nuluj() {
        document.getElementById("stupne").value = "0";
        document.getElementById("minuty").value = "0";
        document.getElementById("vteriny").value = "0";
        document.getElementById("vysledek").innerHTML = "" ;
    }

      </script>
    </body>
</html>
Nahoru Odpovědět 3.11.2015 20:55
Čím víc vím, tím víc věcí nevím.
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

O funkci innerHTML jsem četl už v javascriptovém tutoriálu tady na itnetwork.cz, ale nenašel jsem vysvětlení toho, jak se používá.

Nahoru Odpovědět 4.11.2015 21:04
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Ještě jednu věc bych potřeboval vědět, jak se v html dělá takové to tlačítko, jak když se na něj klikne, tak se rozvine na více možností, že kterých si můžete vybrat a jak se z tohoto tlačítka získávají data?

Nahoru Odpovědět 5.11.2015 7:26
Say me, why not?
Avatar
Jurajs
Člen
Avatar
Odpovídá na iqbigbang
Jurajs:
<select>
<option></option>
<option></option>
<option></option>
</select>
 
Nahoru Odpovědět 5.11.2015 9:46
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Jo. UZ jsem se o tom dočetl na W3Schools.

Nahoru Odpovědět 5.11.2015 14:38
Say me, why not?
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Tak jsem trochu pokročil, ale nepochopil jsem, jak to je v javascriptu se zapouzdřením (jak v js fungují privátní proměnné), dědičností a polymorfismem. Ze zdejších článků jsem to nevyčetl.

Nahoru Odpovědět 10. ledna 15:32
Say me, why not?
Avatar
Odpovídá na iqbigbang
Michal Žůrek (misaz):
function Clovek {
        var privatniPromenna = "abc";
        this.publicPromenna = "bcd";

        var privatniMetoda = function () {
                // ...
        }

        this.verejnaMetoda = function () {
                // ...
        }
}
Clovek.prototype.verejnaMetodaLepsi = function () {
        // ...
}

tak by to mohlo fungovat, nezkoušel jsem to. Typescript to řeší tak, že je všechno veřejné, ale akorát ti to nenašeptává. Zvykl jsem si na to a nemám problém s tím, že je všechno veřejné.

Nahoru Odpovědět 10. ledna 16:20
Nesnáším {}, proto se jim vyhýbám.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.