Autor Zpráva
koksiksloop
Profil
Zdravím,
jak se dá udělat text v inputu, který musí obsahovat nějaký znak třeba . nebo @...
např. <input type="text" name="email"> například emailová adresa; musí obsahovat @ a .
jak na to?
A dále se chci zeptat; jak udělat v inputu nápovědu, která se po kliknutí nebo po napsání písmena smaže?
anonymníí
Profil *
koksiksloop:
regulární výrazy (v PHP a klidně i v JS pro větší pohodlí). Nápověda bude taktéž skrytí pomocí JS.
Coompiik
Profil
Já jsem to vyřešil přes <input name="mail1">@<input name="mail2">.<input name="mail3"> a pak ve zpracovávacim kodu(PhP) sem proste napsal
$mail = $_GET['mail1'] . "@" . $_GET['mail2'] . "." . $_GET['mail3']; a dál už jsem používal tag $mail , a to smazání po napsání písmena bych udělal např onkeydown, např,
<input onkeydown="document.getElementById('napoveda').style.display='none';"><span id="napoveda">Napoveda</span>,
jedinej problém je, že kdyš bude políčko prázdný nápověda se už nezobrazí, prostě kdyš bude aktivní input a stiskneš klávesu nápověda do refreshe zmizí.


Jednodušejc ani těžčejc už to splácat neumim.
koksiksloop
Profil
Coompiik:
Díky,
ale nevíš jak udělat aby ta napoveda byla jako text v tom inputu?
okolojsoucí
Profil
Coompiik:
Tvůj kód je takový paskvil že být tebou ho urychleně smažu.

koksiksloop:
Třeba takto to může udělat. - http://kod.djpw.cz/iuab
Coompiik
Profil
<input value="Napoveda" onfocus="if (this.value=='Napoveda') {this.value=''}" onblur="if (this.value=='') {this.value='Napoveda'}">
Vsude kde je napsano napovedan apis stejny text, value je to co se zobrazuje před kliknutím, onfocus je to co je po kliknutí, kdyš(if) bude v inputu value="Napoveda" msaze se to(this.value='') a onblur dela ze kdys bude okno prázdný(if this.value=='') napíše se Napoveda(this value='Napoveda'), muzes is to testnout v online testeru na http://c.jecool.net/tester/ a opakuju, Všude kde je nápis Napoveda napiš to stejný


okolojsoucí i tak to de :D, já sem začátečník a s JS moc neumim, spíš moc vůbec
okolojsoucí
Profil
koksiksloop:
Tady jsem to trochu propracoval - Náhled / Zdroj


Coompiik:
Ten tvůj „tester“ je další paskvil - to my chceš říci že gramaticky špatné stránky jsou dnes v módě? :-) Dobře si rozmislete co sem napíšete, možnost měnit je momentálně nedostupná!
Coompiik
Profil
okolojsoucí:
Nezblázni se :D,
koksiksloop:
každopádně kdys smichas jeho kod a moje textovi pole mas to hotovi. Myslim si že vyřešeno.
Fisir
Profil
Reaguji na Coompiika:
každopádně kdys smichas jeho kod a moje textovi pole mas to hotovi. Myslim si že vyřešeno.
Česky, prosím.

Mimochodem, ten tvůj „tester“ s podporou PHP není příliš bezpečný… omlouvám se :-(.
Coompiik
Profil
Fisir to chápu, asi podporu php přesunu někam na zvláštní server aby nemohl měnit otstatní soubory na ton webu, (byl bych rád Fisir kdybys mě opravil jestli teď říkám blbost) a možná by mohlo stačit kdybych to přesunul o adresář výs, potože mám vzato že php skriptu umí zacházet pouze se soubory v adresáři ve kterém se nacházejí a v adresářích co jsou v adresáři ve kterém je skript.
okolojsoucí
Profil
Dost se pleteš.

Zkus si na web dat do jedné složky php a do něj tento obsah
<?php
  echo "<pre>";
  print_r(glob(*.*));
?>

a pak to zkus změnit za
<?php
  echo "<pre>";
  print_r(glob('../'.*.*));
?>

A pak uvidíš že lze pracovat neomezeně s prostorem na webu
Coompiik
Profil
Nové Téma: Možnost pracovat pouze se soubory v určité složce.
yFang
Profil
koksiksloop:
Udělal jsem takovou ukázku, doufám, že to je to na co ses ptal:
http://kod.djpw.cz/kuab (jak to funguje jsem tam popsal v komentářích)
Chamurappi
Profil
Proč testujete něco víc, než že je v poli opravdu zavináč a tečka?


Reaguji na okolojsoucího:
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
Už jsi slyšel o TLD .info nebo .museum? A o IDN doménách?


Reaguji na yFanga:
/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/
Pomlčka je v doméně zakázaná? Podtržítko jsem v doméně druhého řádu ještě neviděl a vyšší řád zakazuješ…

var defaultValue = "name@example.com";
Proč tak komplikovaně, když formulářové prvky mají přímo vlastnost (shodou okolností také nazvanou defaultValue), ve které je výchozí hodnota?
yFang
Profil
Chamurappi:
Hm asi máš pravdu, http://kod.djpw.cz/puab takhle to je jednodušší.
okolojsoucí
Profil
Chamurappi:
Jojo slyšel, ale oficiální regulérní výraz mi tam za živého boha nejde

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ 
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
 \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
 \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
 \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*)
Chamurappi
Profil
Reaguji na okolojsoucího:
ale oficiální regulérní výraz mi tam za živého boha nejde
Proč je důležité do puntíku dodržet RFC? (Mimochodem, současná specifikace e-mailu je v RFC 5322, nezkoumal jsem, zda se formát adresy nějak změnil oproti RFC 822.)

Kontrola formátu e-mailové adresy v drtivé většině případů postrádá význam. Kdo chce zadat nesmysl, zadá hravě i syntakticky platný nesmysl, důležité je tedy pozastavit případy, kdy se uživatel dopustí chyby nechtěně, což velmi pravděpodobně nebude chyba typu „zapomněl escapovat uvozovku“ (což je prohřešek proti RFC), ale spíš typu „zapomněl koncovku domény“ nebo „napsal seznam.cx místo seznam.cz“ (ani jedno není prohřešek proti RFC).
Str4wberry
Profil
Jenom doplním, že pokud má políčko obsahovat určité znaky, je dobré to napsat do chybové hlášky.

Tedy místo hlášky „Email je ve špatném formátu.“ napsat, že je potřeba zadat zavináč apod.
Chamurappi
Profil
Reaguji na Str4wberryho:
Přesně tak. A toto zajímavé téma na článek si zamlouvám já! :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: