Autor Zpráva
Jitule
Profil *
Ahoj, snažím se trochu pochopit JS. Mám takovýto script který ovšem funguje pouze když připojím knihovnu <script language="JavaScript" type="text/javascript" src="jquery.min.js"></script>.
Určitě to lze napsat tak abych nemusel jquery využít. Můžete mi prosím poradit.
Díky

$(document).ready(function(){
  $(document).on('click', ".kalkulacka-start", function() {
    var sire = $("select[name=kalk_sire]").val();
    var navin = $("input[name=kalk_navin]").val();
    var prostrih = $("input[name=kalk_prostrih]").val();
    var vyska = $("input[name=kalk_vyska]").val();
    var delka = $("input[name=kalk_delka]").val();
    if ( sire == "53" )
        {
            var out = (delka/100)*((vyska/100)+(prostrih/100))/5.3;
        } 
    else {
        if ( sire == "70" )
            {  
                var out = (delka/100)*((vyska/100)+(prostrih/100))/7;
            }
        else {    
            var out = (delka/100)*((vyska/100)+(prostrih/100))/10.6;
            }
        }
         
    $(".kalkulacka-out span").text(Math.ceil(out));
    $(".kalkulacka-out").show();
  });
}); 
Tomášeek
Profil
Jitule:
Poradit nebo cele přepsat?

Pokud ti někdo dodá cely kód, nic se nenaučis. Zkus to sam/a a vrat se pro radu, až si nebudeš vědět rady s něčím konkrétním.
Jitule
Profil *
Tak zkusila jsem toto: Funguje to jenom když zadám napevno proměnné, ale teď nevím jak tam dostanu tu proměnou z inputu, kterou zadá uživatel. A taky proč mi výsledek vypisuje i když nestisknu tlačítko?

<form>  
        <input type="text" size="10" id="sire" />
        <input type="text" size="10" id="vyska" />
        <div id="calcDiv"></div>
        <script>


                var calc = {
                    vysledek: function () {
                        var pocet = document.getElementById("calcDiv");
                        var sire = document.getElementById("sire").value;
                        var vyska = document.getElementById("vyska").value;
                        //var sire = "53";
                        var navin = "1005";
                        var prostrih = "10";;
                        //var vyska = "200";;
                        var delka = "600";;
                        pocet = (delka/100)*((vyska/100)+(prostrih/100))/5.3;
                        document.getElementById("calcDiv").innerHTML = "<H1>" + pocet + "</H1>";
                        //return document.write(nahodne);
                    },
                };
            </script>
            <script>
                console.log(calc.vysledek());
            </script>
            <input type="submit" value="spocti" onsubmit="calc.vysledek();">
    </form>
_es
Profil
Používaš rovnaké udalosti ako v prvom kóde?
A ak nie, nemôžeš sa čudovať, že sa to celé správa inak.
Zmenil si aj HTML kód, v prvom kóde to nevyzerá na klasický formulár s klasickým odosielacím tlačítkom.
Ak sa snažíš „trochu pochopit JS“, tak bude vhodnejšie si naštudovať nejaké výukové materiály, než takéto pokusy „naslepo“.
lionel messi
Profil
Jitule:

Tie dva kódy nie sú ekvivalentné. Vybral(a) si sa trošku ťažšou cestou, na začiatok by som tento prístup k objektom radšej vynechal a zistil čo najpresnejšie (ideálne úplne presné) ekvivalenty jQuery metód a atribútov.

Môj postup by bol zhruba takýto:

1. Napísal by som si JS funkciu podľa riadkov 3 - 23. Nazval by som ju trebárs vypocet (nie je to najlepší názov, ale som antitechnický typ a ani podľa dobre nazvaných premenných absolútne netuším, čo vlastne počítaš :-)).

• V rámci nej by som namiesto $("select[name=kalk_sire]") a pod. použil metódu querySelector a metódu val nahradil za atribút value. Vieš, aký je v JS syntaktický rozdiel pri prístupe k metódam a k atribútom? Ak nie, skús si o tom niečo prečítať. Malý tip: Prepísať val na values je síce nutné, ale nedostačujúce.

• Namiesto metódy text by som si vybral atribút textContent.

• Namiesto metódy show sa núka viacero možností, ako zviditeľniť element. Atribút style, pridanie/prepnutie triedy…

2. Túto celú funkciu vypocet by som zavesil na potrebný element trebárs pomocou addEventListener.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0