NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
martinkobelka
Tvůrce
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
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í
+2,50 Kč
Ř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.