Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
c++ week
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:26.6.2015 20:34

Dobrý den

Potřeboval bych reagovat na událost změny hodnoty zadané do textového pole. Zatím mám tento kód. Kód funguje, ale když obsah vymažu klávesou backspace, tak se nezobrazí chyba a tlačítko odeslat zůstane aktivní. Nevíte někdo způsob jak to vyřešit?

<form>
                <table>
                    <tr>
                        <td><label for="jmeno" class="musiByt">Jméno*</label></td>
                        <td><input type="text" value="" name="jmeno" id="jmeno" /></td>
                    </tr>
                     <tr>
                        <td><label for="prijmeni" class="musiByt">Příjmení*</label></td>
                        <td><input type="text" value="" name="prijmeni" id="prijmeni"/></td>
                    </tr>
                     <tr>
                        <td></td>
                        <td><input type="submit" value="Odeslat" id="odeslat" name="prijmeni" disabled=""/></td>
                    </tr>
                </table>
            </form>
            <script type="text/javascript">

                var label = document.getElementById("jmeno");
                var label2 = document.getElementById("prijmeni");
                var chyba = document.getElementById("chyba");
                var odeslat = document.getElementById("odeslat");

                var jmeno = "";
                var prijmeni = "";

                function myfunction(){
                    jmeno = label.value;
                    prijmeni = label2.value;
                    if(jmeno.length < 6 || prijmeni.length < 6){
                        chyba.innerHTML = "Jméno a přijiméní musí mít nejméně 6 znaků";
                        odeslat.disabled = true;
                    }
                    else{
                        chyba.innerHTML = "";
                        odeslat.disabled = false;

                    }
                }

                label.onkeypress = myfunction;
                label2.onkeypress = myfunction;

            </script>

Předem děkuji za odpověď

 
Odpovědět
26.6.2015 20:34
Avatar
Tonda Kozák
Člen
Avatar
Odpovídá na martinkobelka
Tonda Kozák:26.6.2015 21:08

Zkus změnit onkeypress na onkeyup / onkeydown.

 
Nahoru Odpovědět
26.6.2015 21:08
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Tonda Kozák
Člen
Avatar
Tonda Kozák:26.6.2015 21:13

Mimochodem, nevím, na co to máš, ale například ani moje jméno, ani příjmení nemá požadovaných 6 znaků.

Edit:
je možné jen onkeyup, onkeydown ti nebude dobře fungovat.

Editováno 26.6.2015 21:15
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
26.6.2015 21:13
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 3 zpráv z 3.