onClick validacija forme

onClick validacija forme

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Imam neku formu za slanje mailova (i ona radi, to nije problem) ali mi treba JS koji bi prilikom klika na dugme "Posalji" proverio da li su popunjena sva obavezna polja, a za polje "e-mail" i da li ima @ i . (posle @).

Do sad sam resavao to preko php-a, ali ukoliko nije unesen neki podatak forma mora da se popunjava ponovo... smorno... tako da mi treba JS f-ja koja onClick proverava validnost (ne)unetih podataka, i ukoliko je sve u redu onda postuje formu, a ako nije, izbaci mu alert tipa "Niste uneli sve neophodne podatke"...

Unapred hvala!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Okt 2004
  • Poruke: 444
  • Gde živiš: Pozarevac

Imas php scripte za to i nemoras sve o5 etc.. ae videcu imam ja to negde , pa cu uploadovati da se nebi muchio .. poz



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Ma imam ja PHP za to, to mi nije problem... to su po 2-3 linije koda

<?php $mail = $_POST['mail']; if (empty($mail)) { //JS varijanta echo "<script>alert('Niste uneli e-mail');</script>"; //HTML varijanta echo "Niste uneli e-mail"; //JS+HTML echo "<script>location.href='greska.php?msg=mail</script>"; //i jos ko zna koliko ovakvih resenja, da ne nabrajam vise //i na kraju die(); die(); } ... ?>

ali ono sto meni treba je JS funkcija koja na onClik Submit dugmeta izvrsi proveru da li su sva obavezna polja popunjena i ako jesu dozvoljava slanje forme, ako nisu ne dozvoljava Smile kao i to da je mail unesen u pravilnom formatu (mail@server.tld)... Samo takvo resenje me interesuje i nijedno drugo Smile

offline
  • Pridružio: 18 Okt 2004
  • Poruke: 444
  • Gde živiš: Pozarevac

^^ hehehe .... bah pa nemam nista od JS funkcija koje bi mogle to da odrade :/

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Nema veze... googlao sam juce ceo dan i nasao bas ono sto mi treba... Cak ima i validaciju e-mail adrese (mail@server.tld)

Moze lock, sto se mene tice Smile

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

...
<head> <SCRIPT LANGUAGE="JavaScript"> <!--   function checkit() {     txt=document.create.email_address.value;     if (document.create.fname.value=='')          {alert('Please tell us your first name.');  document.create.fname.focus();  return false;}    if (document.create.lname.value=='')          {alert('Please tell us your last name.');  document.create.lname.focus();  return false;}    if (document.create.email_address.value=='') {alert('Please please tell us your email address.');  document.create.email_address.focus();  return false;}     if (txt.indexOf("@")<2)                         {       alert("Your email address seems wrong. Please check the prefix and '@' sign.");        document.create.email_address.focus(); return false;    }    return true;   }    //--> </SCRIPT> </head>
...
<FORM METHOD="post" ACTION="newsletter.php" NAME="create" ONSUBMIT="return checkit();">
...

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

ja sam nasao ovako nesto...

function emailCheck (emailStr) { var emailPat=/^(.+)@(.+)$/ var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" var validChars="\[^\\s" + specialChars + "\]" var quotedUser="(\"[^\"]*\")" var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ var atom=validChars + '+' var word="(" + atom + "|" + quotedUser + ")" var userPat=new RegExp("^" + word + "(\\." + word + ")*$") var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") var matchArray=emailStr.match(emailPat) if (matchArray==null) { alert("Uneta e - mail adresa nije validna!") return false } var user=matchArray[1] var domain=matchArray[2] if (user.match(userPat)==null) { alert("Uneta e - mail adresa nije validna!") return false } var IPArray=domain.match(ipDomainPat) if (IPArray!=null) { for (var i=1;i<=4;i++) { if (IPArray[i]>255) { alert("IP primaoca nije validan!") return false } } return true } var domainArray=domain.match(domainPat) if (domainArray==null) { alert("Uneta e - mail adresa nije validna!") return false } var atomPat=new RegExp(atom,"g") var domArr=domain.match(atomPat) var len=domArr.length if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { alert("Uneta e - mail adresa nije validna!") return false } if (len<2) { alert("Uneta e - mail adresa nije validna!") alert(errStr) return false } return true; } function Validate() { if (contact_form.name.value=='') { alert("Niste uneli Vase ime!"); document.contact_form.name.focus(); return (false); } if (contact_form.email.value=='') { alert("Niste uneli Vasu e-mail adresu!"); document.contact_form.email.focus(); return (false); } if (!emailCheck (contact_form.email.value) ) { document.contact_form.email.focus(); return (false); } if (contact_form.subject.value=='') { alert("Niste uneli naslov poruke!"); document.contact_form.subject.focus(); return (false); } if (contact_form.message.value=='') { alert("Niste uneli tekst poruke!"); document.contact_form.message.focus(); return (false); } return(true); }

i

<form method="post" action="send.php" name="contact_form" onsubmit="return Validate();">

ali je problem sto validacija u IE radi bez problema, a u FF ne prijavljuje nista, cak i ako su sva polja prazna... A mail je uredno poslat, samo je prazan Sad

Dopuna: 30 Okt 2006 1:22

Nasao sam resenje... radi i u FF i u IE, ostale browsere nisam testirao...

samo sam zamenio

... if (contact_form.name.value=='') ... if (contact_form.email.value=='') ... if (!emailCheck (contact_form.email.value) ) ... if (contact_form.subject.value=='') ... if (contact_form.message.value=='') ...

sa
... if (document.forms[0].elements[0].value == "") ... if (document.forms[0].elements[1].value == "") ... if (!emailCheck (document.forms[0].elements[1].value) ) ... if (document.forms[0].elements[2].value == "") ... if (document.forms[0].elements[3].value == "") ...

i radi Smile

offline
  • Pridružio: 26 Feb 2010
  • Poruke: 109

E moze li mala pomoc oko ovoga, napisao sam skoro ceo html, ali mi ostala kontakt strana, za koju imam problem.... Nisam radio u drugim jezicima osim html pa ako moze neko objasnjenje, kako onaj gore navedeni kod da odradim u mom html sajtu...

Ko je trenutno na forumu
 

Ukupno su 918 korisnika na forumu :: 18 registrovanih, 6 sakrivenih i 894 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: bestguarder, ladro, laki_bb, Lazarus, mean_machine, mgolub, MikeHammer, mnn2, nenad81, operniki, Parker, SlaKoj, Srky Boy, Trpe Grozni, W123, yufighter, Zimbabwe, zzapNDjuric99