Autor Zpráva
bobby
Profil
Zdravím, snažím se o kontrolu dat, můj problém: funkce mi ihned po načtení vypíše, že pole neodpovídají, já chci ale kontrolu dat provést až po zapsání do položky. Předem děkuji za případné rady.


<form method="post">
    <p>
        <label for="jmeno">Jméno:</label><br>
        <input onblur="kontrola('jmeno')" type="text" id="jmeno" name="jmeno" >
        <span id="chybajmeno">Nezadal jste jméno!</span>
    </p>
    <p>
        <label for="nick">Přihlašovací jméno:</label><br>
        <input onblur="kontrola('nick')" type="text" id="nick" name="nick" >
        <span id="chybanick">Nezadal jste přihlašovací jméno!</span>

  </p>
    <p>
        <label for="heslo">Heslo:</label><br>
        <input onblur="kontrola('heslo')" type="password" id="heslo" name="heslo">
        <span id="chybaheslo">Nezadal jste heslo/heslo je příliš krátké!(minimálně 6 znaků)</span>

  </p>
    <p>
        <label for="overeni">Zopakujte heslo:</label><br>
        <input onblur="kontrola('overeni')" type="password" id="overeni" name="over_heslo">
        <span id="chybaovereni">Nezadal jste ověření hesla/hesla se neshodují!</span>

  </p>
    <p>
        <label for="email">E-mail:</label><br>
        <input onblur="kontrola('email')" type="text" id="email" name="email" >
        <span id="chybaemail">Nezadal jste platnĂ˝ email!</span>

  </p>
    <input type="submit" name="submit" value="Registrovat">
</form>
<script>
    function kontrola(form) {
        var vyraz = /[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,8}/;
        var hodnota = document.getElementById(form).value;
        var over1 = document.getElementById("heslo").value;
        var over2 = document.getElementById("overeni").value;
        if (hodnota == "") {
            document.getElementById("chyba" + form).style.display = "inline";
        }
        else if (form == "email" && vyraz.test(hodnota) == false) {
            document.getElementById("chyba" + form).style.display = "inline";
        }
        else if (form == "heslo" && hodnota.length < 6) {
            document.getElementById("chyba" + form).style.display = "inline";
        }
        else if (form == "overeni" && over1 != over2) {
            document.getElementById("chyba" + form).style.display = "inline";
        }
        else {
            document.getElementById("chyba" + form).style.display = "none";
        }
    }
</script>
Fisir
Profil
Reaguji na bobbyho:
Musíš těm spanům s textem chybové hlášky nastavit v CSS display: none.
bobby
Profil
Děkuji moc.

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