Autor Zpráva
lukame
Profil *
Zdravím,
mám jednoduchou kontrolu vyplněných polí ve formuláři:
  <script type="text/javascript">
   
    function kontrola() {
    if (document.modal.name.value == ""){
          var jako = "ne"; 
          return false;
        }
        
    else {    
          var jako = "ano";
            return true;
      }  
          
   }   
</script>

Formulář:
<form   ... >

 <input class="input" type="text" name="name" value="" onKeyUp="kontrola()">
                  <script type="text/javascript" language="JavaScript"> 

                    if (jako == "ano"){
                            document.write('přijmuto'); 
                   }
                   else {
                           document.write('není'); 
                        }
                   
                  </script>
</form>

Chci provádět kontrolu přímo při zadávání do inputu. Funguje to perfektně, pokud do funkce kontrola() dám k jednotlivým podmínkám třeba hlášku alert(). Ale potřebuji to nějak dostat přímo k inputu, aby se mi za políčkem objevil třeba zelený / červený puntík. Takže mi už nefunguje ten javascriptový IF pod inputem.
Díky za rady
Keeehi
Profil
lukame:
document.write se nedá použít pro už vykreslenou stránku. Musíš použít něco jiného a to uvnitř té funkce kontrola.
lukame
Profil *
hm... o to mi šlo, jestli je to vůbec možné mít přímo u inputu mimo funci kontroly..... mrknu na to. dík
Taps
Profil
lukame:
pro rozšíření obzorů Označení povinných položek
Trejpa
Profil
lukame:
Nemusíš použít přímo innerHTML, stačí změnit třeba třídu.
lukame
Profil *
Díky, HTML5 je super, ale ještě bych s tím počkal. .. Pokud to jde udělat jinak.
Trejpa: je nějak zásadní rozdíl v použití Inner nebo změna třídy? Myslím tím v zatížení procesů atd....
No, ještě bych se chtěl zeptat na jedno. Kontrola výše už mi funguje skvěle, ale pořád se trápím s kontrolou emailů:
                  function kontrola_email() {
           var email = document.getElementById('email');
           var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email.value)) {       
            ....... není
            }            
        else {    
            ...... jeje
          }          
         } 

<input class="input" type="text" name="email" value="@" onKeyUp="kontrola_email()">

Motám se s tím už moc dlouho dokola. Je to samozřejmě převzatá podmínka. Díky
Trejpa
Profil
lukame:
Předělaný příklad pro e-mail.
(Použitý regulár bere jen e-mailové adresy v ASCII. Chceš-li vyhodnotit obecnou adresu, třeba obsahující diakritiku, použij nějaký pokročilejší.)

Přidal jsem tam i reakci na změnu fokusu, protože při vhodném názvu inputu prohlížeč může hodnotu napovědět, uživatel ji vybere myší, ale tím nespustí událost onKeyUp.
KryVosa
Profil
Trejpa:
Ať už je to čímkoliv, ten tvůj RegExp reaguje kladně i na email ".@e " (Ta mezera na konci tam má být)
Trejpa
Profil
KryVosa:
Nerozporuji, není můj. Neumím je sestavovat, jen použít. Jak jsem napsal, je třeba použít pokročilejší.
_es
Profil
lukame:
<input class="input" type="text" name="name"
Nie je dobrý nápad, dávať prvkom formulára také „podivné“ názvy ako name - dokáže to spôsobiť ťažko odhaliteľné chyby.

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: