Autor Zpráva
greno
Profil *
Mam nasledujuci skript na overovanie mailovej adresy ale ako skusam, tak skusam nikdy mi nejde. neviete mi prosim poradit v com je chyba?
toto vrchne mam v stranke a tu spodnu fuknciu vkladam z externeho suboru:

<form id="reg_mail" name="reg_mail" method="post" action="">
<input type="text" name="email" class="pole">
<span id="kontrola2"><script charset="UTF-8"> setInterval("email(\'email\')",100); </script></span>

function email(form) {
var input = document.reg_mail.getElementById(form);
if(input.value != null && input.value.length <> 4 && !input.value.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA- Z0-9]{2,4})+$/))
{
document.getElementById("kontrola2").innerHTML="Zlý formát adresy.";
return false;
}
}
joe
Profil
Nevidím tam id, které hledáš v JavaScriptu.

<input type="text" name="email" class="pole" id="email">

---
var input = document.getElementById('email');
greno
Profil *
aj tak to nefrci :(
greno
Profil *
nevie mi nik poradit?
Měsíček
Profil
Víme, pošli ten script znovu (už opravený o joeovu radu).
Chamurappi
Profil
Reaguji na greno:
<script charset="UTF-8">
Kde jsi ten charset sebral? Nic tam nedělá.

input.value.length <> 4
Operátor „nerovná se“ se v JavaScriptu píše „!=“.

([a-zA- Z0-9]{2,4})+
Bude-li mít někdo e-mail pod doménou s koncovkou „.museum“, tak má smůlu.
Měsíček
Profil
Jinak nejsem JS Guru takže omluv mé ne zrovna nejkratší a nejspolehlivější řešení, ale tohle by mohlo fungovat.


<form name="form" action="#">
    <input type="text" name="email">
    <input type="button" value="Zkontroluj" onClick="check_email (document.form.email.value);">
  <span id="kontrola"></span>
</form>

<script type="text/javascript">
  var box = document.getElementById("kontrola");
  function check_email (e) {
    var r = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
      box.innerHTML = (r.test(e)) ? "Syntaxe e-mailu je správná!" : "Syntaxe e-mailu není správná!";
  }
</script>
greno
Profil *
uz to fici, ale nevies mi poradit ako by som do toho zakomponoval to ze bude to robit az po 4 znakoch (ked bude dlzka viac ako 4 znaky)?
Měsíček
Profil
Vím, ale je to zbytečné když minimální délka e-mailu, který projde je 6 znaků (x@x.cz) tedy kontrola jestli má méně než 4 je minimálně krávovina.
greno
Profil *
Chamurappi
„<script charset="UTF-8">“ tam robi vela pretoze je to z externeho suboru a potom je to skarede
„([a-zA- Z0-9]{2,4})+“ no to je mozne len ja som to smajzol z jednej stranke, kedze tieto regularne vyrazy su pre mna tabu
greno
Profil *
Vím, ale je to zbytečné když minimální délka e-mailu, který projde je 6 znaků (x@x.cz) tedy kontrola jestli má méně než 4 je minimálně krávovina.

len nechcem robit kontrolu ked clovek zacne uz pisat (som troska upravil ten skript na nie onclick ale onkeyup) a chcem aby to zacalo kontroloval az ked je napisane minimalne @.sk (alebo nieco ine)
Měsíček
Profil
Jak už jsem řekl, je to zbytečnost, ale kdyby jsi chtěl alespoň orientačně vědět jak se to dělá, tak, místo:
box.innerHTML = (r.test(e)) ? "Syntaxe e-mailu je správná!" : "Syntaxe e-mailu není správná!";
dáš tohle
box.innerHTML = (r.test(e) && e.length > 4) ? "Syntaxe e-mailu je správná!" : "Syntaxe e-mailu není správná!";
jinak <script charset="UTF-8"> je zbytečnost nastav si buď element <meta> a nebo posílej správné hlavičky (ukládej soubor v tom kódování jaké má META tag).
Měsíček
Profil
"len nechcem robit kontrolu ked clovek zacne uz pisat (som troska upravil ten skript na nie onclick ale onkeyup) a chcem aby to zacalo kontroloval az ked je napisane minimalne @.sk (alebo nieco ine)"

Jednoduše. Stačí se naučit používat podmínky a regulární výrazy.
greno
Profil *
<meta> v .js subore??
a to && e.length > 4 nefunguje :(
Měsíček
Profil
"a to && e.length > 4 nefunguje :("

Funguje, pokud si můj skript jinak nepřepisoval.

"<meta> v .js subore?? "

Ne. <meta> v HTML souboru.
greno
Profil *
<meta> mam v html ale nefungovalo to, stale to bolo skarede. a tvoj skript som len prepisal ze
<input type="text" name="email" onkeyup="check_email (document.form.email.value);">
inak je to iste
Měsíček
Profil
"<input type="text" name="email" onkeyup="check_email (document.form.email.value);">
inak je to iste
"

Špatné řešení.

"<meta> mam v html ale nefungovalo to, stale to bolo skarede. a tvoj skript som len prepisal ze "

Protože kódování v META elementu se musí shodovat s kódováním souboru jako takového - což zjevně nemáš.
greno
Profil *
to je pravda, ale aby som sa s tym nemusel parat tak som dal charset.
a ake je spravne riesenie?

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