Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 1. 1. 2008, 18:26:42
Zdravím Vás, už jste mi zde dnes pomohli vyřešit problém s externím *.js (moc díky), no nyní mám pro změnu tento. V externím *.js jsou validace 2 různých formulářů (oba jsou na různých podstránkách webu)
/* -- VALIDATE QUICKFORM -- */ function isset(name) { return document.forms['quickform'].elements[name].value.length>0; } function validate_quickform() { if (!isset('jmeno')) {window.alert('Zadejte prosím Vaše jméno');return false;} if (!isset('telefon')) {window.alert('Zadejte prosím Vaše telefonní číslo');return false;} if (!isset('email')) {window.alert('Zadejte prosím Vaši e-mailovou adresu');return false;} if (!isset('zprava')) {window.alert('Co nám chcete sdělit ?');return false;} return true; } /* -- VALIDATE DEMANDFORM -- */ function isset(name) { return document.forms['demandform'].elements[name].value.length>0; } function validate_demandform() { if (!isset('firma')) {window.alert('Zadejte prosím název Vaší firmy. Pokud jste OSVČ, zadejte Vaše jméno.');return false;} if (!isset('jmeno')) {window.alert('Zadejte prosím Vaše jméno nebo jméno kontaktní osoby.');return false;} if (!isset('telefon')) {window.alert('Zadejte prosím telefonický kontakt');return false;} if (!isset('email')) {window.alert('Zadejte prosím e-mailovou adresu');return false;} if (!isset('ulice')) {window.alert('Zadejte prosím ulici');return false;} if (!isset('mesto')) {window.alert('Zadejte prosím město');return false;} if (!isset('psc')) {window.alert('Zadejte prosím PSČ');return false;} if (!isset('zprava')) {window.alert('V čem Vám můžeme pomoci ?');return false;} return true; } V hlavičce obou stránek s formuláři je odkaz na *.js <script src="javascript/scripts.js" type="text/javascript"></script> V <body> pak je: 1. Stránka s 1. formulářem <form name="quickform" action="quickform.php" method="post" onsubmit="return validate_quickform()"> <input type="text" name="jmeno" style="width:160px" value=""></td> <input type="text" name="telefon" style="width:160px" value=""></td> <input type="text" name="email" style="width:160px" value=""></td> <textarea name="zprava" cols="25" rows="3" style="width:220px"></textarea> <input type="image" src="../images/send.jpg" border="0" alt="Odeslat formulář"> </form> 2. Stránka s 2. formulářem <form name="demandform" action="demandform.php" method="post" style="margin:0px;padding:0px;border:0px" onsubmit="return validate_demandform()"> <input type="text" name="firma" size="39" style="width:290px" value=""> <input type="text" name="jmeno" size="39" style="width:290px" value=""> <input type="text" name="telefon" size="39" style="width:290px" maxlength="20" value=""> <input type="text" name="email" size="39" style="width:290px" value=""> <input type="text" name="ulice" size="39" style="width:290px" value=""> <input type="text" name="mesto" size="39" style="width:290px" value=""> <input type="text" name="psc" size="" style="width:100px" maxlength="6" value=""> <textarea name="zprava" cols="32" rows="11" style="width:290px"></textarea"> <input type="image" src="../images/send.jpg" width="59" height="26" alt="Odeslat formulář" border="0"> </form> Validace vyplnění políček u DEMANDFORM probíhá naprosto v poho, naopak u QUICKFORM nic .... prohlížeč ho odešle s klidem úplně prázdný. Ještě původně byl název funkce shodný u obou formulářů ... a "onsubmit" v tagu <form> byl též u obou shodný function validate_form() ..................................... onsubmit="return validate_form()" I v tomto případě mi v poho probíhala validace u DEMANDFORM, u QUICKFORM nikoliv. Myslel jsem si, že tím přejmenováním a odlišením názvu funkcí pro 2 různé formuláře to vyřeším, ale nestalo se ...... Můžete se na to prosím někdo mrknout .... |
||
Leo Profil |
#2 · Zasláno: 1. 1. 2008, 19:20:30
Protoze jste si predefinoval fci isset, Leo
|
||
Mufna Profil |
Hmm .... laicky mě tedy napadá nedělat jeden "univerzální" *.js soubor, ale rozdělit to kvůli tomuhle alespoň do dvou a ke každé stránce s formulářem pak připojit externě jiný *.js . To by mělo fungovat, nebo ne ? A i kdyby ano, nejde to udělat nějak elegantněji v tom jednom "univerzálním" *.js souboru pro všechny stránky ? Skripty opravdu nejsou moje parketa .....
|
||
los Profil * |
#4 · Zasláno: 1. 1. 2008, 20:49:07
Mohol by si funkcii isset posielať v argumente formulár, ktorého vstupné polia má testovať, ale to už je potom jednoduchšie namiesto if (isset(form, name)) zapísať rovno if (form[name].value)...
Alebo môžeš mať napríklad jednu funkciu validate, ktorej budeš posielať formulár na zvalidovanie (onsubmit="return validate(this)"). Tá funkcia validate môže vyzerať napríklad takto: function validate(form) { var forms = { "quickform": { "jmeno": "Zadejte prosím Vaše jméno", "telefon": "Zadejte prosím Vaše telefonní číslo", "email": "Zadejte prosím Vaši e-mailovou adresu", "zprava": "Co nám chcete sdělit?" }, "demandform": { "firma": "Zadejte prosím název Vaší firmy. Pokud jste OSVČ, zadejte Vaše jméno.", "jmeno": "Zadejte prosím Vaše jméno nebo jméno kontaktní osoby.", "telefon": "Zadejte prosím telefonický kontakt", "email": "Zadejte prosím e-mailovou adresu", "ulice": "Zadejte prosím ulici", "mesto": "Zadejte prosím město", "psc": "Zadejte prosím PSČ", "zprava": "V čem Vám můžeme pomoci?" } } for (var name in forms[form.name]) if (!form[name].value) { alert(forms[form.name][name]); return false; } return true; } |
||
Mufna Profil |
#5 · Zasláno: 1. 1. 2008, 21:04:29
los
Díky, ta jedna fce validate se mi líbí, vyzkouším .... |
||
Časová prodleva: 16 let
|
0