Hledáme interního redaktora
Zobrazují se odpovědi 1 až 6 z 6

Tlačítko typu submit i nespustí přivazbenou funkci

  1. Ahoj, snažím se zprovoznit tento kód, ale jsem začátečník a moc mi to nejde. Mám jednoduchou kalkulačku, která bere 2 neznáme čísla a spustí se při kliknutí na Submit. Píše mi to, že tam chybí ) , ale kód je krátký a všechny ( jsou napárované a není to zacyklené.

    Poradíte mi pěkně prosím?

    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

    <style>
    .veldar {display: none}
    </style>
    </head>





    <script>
    function validateForm() {
    //SUBMIT 1.
    //kontrola druhu daně
    console.dir(první meta);
    if (document.GetElementByName("dd").value = 0) {
    alert("Zvolte prosím druh daně");//ANO
    b = document.forms["dd"].Value

    console.dir(druhá meta);

    //kontrola výše příjmu 2. //NE
    var x = document.forms["prijem"].value;
    (if (x == "" || x == null) {
    document.forms["formaprijem"]["prijem"].value = 0;
    a = document.forms["formaprijem"]["prijem"].value
    })

    switch(a) {
    case a<0:
    alert("Chyba! Zdanitelný příjem nemůže být menší bež 0")
    break;
    case var a >= 0
    var a = var a
    break;
    }

    ///IF STATEMENT - PODLE ADMIN DAT - NASTUDOVAT HOOKY!! 3.

    switch (document.forms["dd"].value) {
    case 1:
    var result = Number(a) * 0.15
    break;
    case 2:
    var result = Number(a) * 0.1
    break;
    }


    document.getElementByName("vysledek").Value = result
    document.getElementByName("vysledek").display = "inline-block"
    }
    }




    </script>



    <!-- Druh Daně -->
    <div class="custom-select" style="width:200px;" name="dd">
    <select>
    <option value="0">Vyberte druh daně:</option>
    <option value="1">Z příjmu fyzických osob</option>
    <option value="2">Z příjmu právnických osob</option>
    </select>
    </div>

    <!-- Zdanitelný příjemy -->
    <div>Zdanitelný příjem:</div><form name="formaprijem" onSubmit="return validateForm()"><input type="text" name="prijem" method = "post">
    <input type="submit" value="Submit" name="prijem">
    </form>


    <div class= "veldar" name="vysledek" >Výše daru</div>

    </html>

  2. Co se právě děje na Webtrhu?
  3. hmm, tech chyb ta bude vice console.dir(první meta); musi byt console.dir('první meta');
    dale napr
    case var a >= 0 to je spatna syntaxe
    (if (x == "" || x == null) {
    document.forms["formaprijem"]["prijem"].value = 0;
    a = document.forms["formaprijem"]["prijem"].value
    }) , ( ) musi pryc apod.


    netusim kde se tenhle kod vzal , ale tohle je cele uplne mimo

    1. Argumenty v console.dir() nemáš obalené v uvozovkách nebo aspostrofech. Správně tedy bude console.dir("první meta"); a console.dir("druhá meta");, případně bych doporučoval pro takhle jednoduché výpisy používat jen console.log().
    2. document.getElementsByName("dd")[0].value = 0 ... Jedno rovnítko přiřazuje, dvě rovnítka porovnávají bez datového typu, tři rovnítka porovnávají s datovým typem. V podmínce tak definuj dvě rovnítka. document.getElementsByName("dd")[0].value == 0 ... Zároveň máš nesprávně posunutou ukončovací závorku až na konec celé funkce, správně by měla být za b = document.forms["dd"].Value
    3. document.forms["prijem"] neexistuje. Nejspíš jsi myslel document.forms["formaprijem"]["prijem"]
    4. GetElementByName neexistuje. Správně by mělo být getElementsByName, které ti vrátí pole
    5. Podmínku máš zabalenou v závorkách. (if (x == "" || x == null) { ... }). Správně má být bez závorek: if (x == "" || x == null) { ... }
    6. V rámci switch/case definuješ proměnnou přes var - konkrétně case var a >= 0. Myslím, že jsi ji vůbec v tomhle místě nechtěl definovat, plus ti tam chybí dvojtečka, takže správně je case a >= 0:
    7. Na dalším řádku máš syntaktickou chybu a nejspíš i logickou chybu - nejsem si jistý, jakého výsledku jsi chtěl dosáhnout: var a = var a; by v jiných jazycích přiřadil do proměnné a výsledek definice proměnné a, v JS ti hodí syntaktickou chybu.
    8. Na konci funkce validateForm() ti chybí return false;, který zaručuje, že se formulář neodešle a nepřemažou se ti tak výsledky.

    Na víc teď nemám čas, ale snad ti to trochu pomůže. Další chyby jsou třeba u document.forms["dd"]... Souhlasím s Milanem Horníkem výš, že tam toho je ještě dost.

  4. Díky za konstruktivní kritiku, psal jsem to já, jelikož to mám za úkol udělat. Jak jsem uváděl, tak to moc neumím a teprve se učím, bohužel si teď nevím rady.

  5. První chyba:
    Kód:
    console.dir(první meta);
    správně:
    Kód:
    console.dir('první meta');
    A .dir je tak trochu k ničemu, používej:
    Kód:
    console.log('první meta');
    if v závorce je blbost
    Kód:
    (if (x == "" || x == null) {
    document.forms["formaprijem"]["prijem"].value = 0;
    a = document.forms["formaprijem"]["prijem"].value
    })
    správně:
    Kód:
    if (x == "" || x == null) {
    document.forms["formaprijem"]["prijem"].value = 0;
    a = document.forms["formaprijem"]["prijem"].value
    }
    "var" se používá na proměnnou jen 1x ... navíc nedefinuješ "var a" předtím, než ji používat a nedefinuješ ani "var b"

    taky blbost:
    Kód:
    case var a >= 0:
    Kód:
    var a = var a
    má bejt
    Kód:
    case a >= 0:
    Kód:
    a = a
    DIV nemá "name" atribut ... do DIVu se nedává .value ale .innerHTML ...

    TĚCH CHYB je tam plno ... v samotném HTML i JS tady je fungující verze ... https://jsfiddle.net/pamare/1704wLon/17/

    Problém ale je, že chyby jsou i v základní logice ... ne jen syntax.

  6. To je skvělé! Děkuju moc, dalo mi to zabrat, ale zjistil jsem co všechno mi kazilo kód podle vašeho vzoru. Koukám, že se mám ještě hodně co učit.

Spolupracujeme: Jooble.org, Aximum - profesionální překlady Hostujeme u Server powered by TELE3