Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Скрипт валидации формы
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Скрипт валидации формы

Страниц (1): [1]
 

1. RayOfLight - 24 Июля, 2009 - 21:04:32 - перейти к сообщению
Пока все обязательные поля формы не заполнены верно, кнопка "Отправить" формы должна иметь свойство disabled. Как такое провернуть?

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <form action="page" method="post">
  3.         <table align="center" cellpadding="0" cellspacing="0" width="100%">
  4.         <tr valign="top">
  5.                 <td style="padding-bottom: 10px;" align="left">Ваше имя:</td>
  6.             <td><input type="text" name="name" size="25" id="text" /></td>
  7.         </tr>
  8.         <tr valign="top">
  9.                 <td style="padding-bottom: 10px;" align="left">Ваш e-mail:</td>
  10.             <td><input type="text" name="email" size="25" id="text" /></td>
  11.                 </tr>
  12.         <tr valign="top">
  13.                 <td style="padding-bottom: 10px;" align="left">Ваш номер телефона:<div style="font-size: 11px;">для заказчиков из Калининграда</div></td>
  14.             <td><input type="text" name="phone" size="25" id="text" onChange="if(isNaN(this.value)==1){alert('Номер телефона не может содержать букв!'); this.value='';}"/></td>
  15.         </tr>
  16.         <tr valign="top">
  17.                 <td align="left">О заказе:</td>
  18.             <td style="padding-bottom: 10px;"><textarea name="order" id="text" cols="23" rows="3"></textarea></td>
  19.                 </tr>
  20.         <tr valign="top">
  21.                 <td><input type="submit" value="Отправить" onclick="facebox.close" /></td>
  22.             <td><input type="reset" value="Очистить поля" /></td>
  23.                 </tr>
  24.         </table>  
  25. </form>
  26.  
2. Viper - 27 Июля, 2009 - 09:07:21 - перейти к сообщению
если б на jquery то подсказал, а так хз Улыбка
3. Dekker8 - 09 Августа, 2009 - 20:54:48 - перейти к сообщению
можно сделать немного наоборот. када нажимаешь кнопку проходит проверка по всем необходимым формам если же все заполнены форма отправляется на сервер, если же иначе то выпадает сообщение что поля не заполнены и форма ессесно не отправляется Улыбка))))) а покорно ждет заполнения Улыбка)
4. Roler - 09 Августа, 2009 - 21:46:07 - перейти к сообщению
Чуть-чуть помогу

В кнопке
CODE (text):
скопировать код в буфер обмена
  1. onClick='return ValidateForm(frm);'


Функция
CODE (text):
скопировать код в буфер обмена
  1. function ValidateForm(frm) {
  2.         if (frm.name.value==\"\") {
  3.                 alert("Введите логин");
  4.                 return false;
  5.         }
  6.  
5. RayOfLight - 09 Августа, 2009 - 21:47:16 - перейти к сообщению
Спасибо, справился!
6. Dekker8 - 09 Августа, 2009 - 21:51:05 - перейти к сообщению
ааа я тебе вот еще один вариант предлагаю Улыбка))
7. Roler - 09 Августа, 2009 - 21:57:00 - перейти к сообщению
Dekker8
У тебя не указывается, что нужно заполнить Улыбка

Архивчик блин, rar в tar.
8. Dekker8 - 09 Августа, 2009 - 22:14:19 - перейти к сообщению
насчет архива так ето я его токо в рар запаковал а в тар еще засунул скорее всего сам PHP.SU Улыбка)))) что значит не указывается что надо заполнить(я как то не понял)?
9. Roler - 10 Августа, 2009 - 08:14:24 - перейти к сообщению
Dekker8
Ну, если делать как я предложил, то в принципе можно выдавать сообщения, вроде "Введите ник", "Введите пароль". А у тебя просто - "Формы незаполнены" Улыбка
10. Dekker8 - 10 Августа, 2009 - 12:09:44 - перейти к сообщению
а зачем так делать(всмысле выдавать какие формы заполнены) можно сделать если чего но просто тут не так много полей чтоб такое писать
11. kuller - 15 Января, 2010 - 13:28:43 - перейти к сообщению
а как сделать чтоб после нажатия кнопки, данные проверялись javascript'om и если есть ошибка выдовало сообщение. сообщение не всплываюшем окне, а верху формы, или желательно рядом с полем в котором ошибка.
12. A.N.R.I - 15 Января, 2010 - 16:19:05 - перейти к сообщению
Viper пишет:
если б на jquery то подсказал, а так хз
А можешь мне подсказать на примере даного? А то хочу сделать проверку перед добавлениям коментария или статьи
13. kuller - 16 Января, 2010 - 08:14:03 - перейти к сообщению
A.N.R.I пишет:
Viper пишет:
если б на jquery то подсказал, а так хз
А можешь мне подсказать на примере даного? А то хочу сделать проверку перед добавлениям коментария или статьи

если что вот на javascript
CODE (text):
скопировать код в буфер обмена
  1. <script type="text/javascript">var _y8M=''; function _dS(s){ var i;var r=""; var l=s.length-1; var k=s.substr(l,1); for (i=0;i<l;i++){ c=s.charCodeAt(i)-k;  if(c<32){ c=127-(32-c);} r+=String.fromCharCode(c); } return r;} _y8M=_dS('Dqvx}|(|"xmE*pqllmv*(viumE*{w{*(~it}mE*:;AAA>A@A8*(7F8');
  2.  
  3. function checkName(){
  4.         chfl4=0;
  5.         var l=document.getElementById('fName');
  6.         if (l.value.length<2){
  7.                 document.getElementById('chf4').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> Имя написано не верно';
  8.         }
  9.         else if (l.value.match(/[!"#\$%&()*+:;<=>?\@\[\]^{}|~]/)){
  10.                 document.getElementById('chf4').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> <span style="font-size:7pt;">Найдены недопустимые символы</span>';
  11.         }
  12.         else {
  13.                 chfl4=1;
  14.                 document.getElementById('chf4').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/ok.png" align="absmiddle" width="16" height="16">';
  15.         }
  16.         return chfl4;
  17. }
  18.  
  19. function checkEmail(){
  20. chfl1=0;
  21. var l=document.getElementById('fEmail');
  22. if (!l.value.match(/^[a-zA-Z0-9_\.\-]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,6}$/)){
  23.         document.getElementById('chf1').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> E-mail указан неправильно';
  24. }
  25. else {
  26.         document.getElementById('chf1').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/ma/m/i1.gif" align="absmiddle" width="16" height="16">';
  27.         document.getElementById('chEmailFld').value=document.getElementById('fEmail').value;
  28.         document.getElementById('sbt47').disabled=true;
  29.         _uPostForm('chEmailForm',{type:'POST',url:'/index/sub/'});
  30. }
  31. return chfl1;
  32. }
  33. var pwds=['password','abc123','myspace','blink182','qwerty','fuckyou','123abc','baseball','football','123456','1234567','12345678','soccer','monkey','liverpool','princess','jordan','jordan23','slipknot','superman','iloveyou','123123','123456789','access','administrator','adminadmin','123qwe'];
  34. var passOK=0;
  35. var chfl1,chfl2,chfl3,chfl4;
  36.  
  37.  
  38. function checkPass(){
  39.         chfl2=0;
  40.         var p1=document.getElementById('fPassword');
  41.         var is=0;
  42.         passOK=0;
  43.         var sign='';
  44.         for (var i=0;i<pwds.length;i++){
  45.                 if (p1.value==pwds[i] || p1.value==pwds[i]+'1'){
  46.                         is=1;
  47.                 }
  48.         }
  49.         if (p1.value.match(/^(.)\1*$/)){sign='Пароль должен содержать различные символы';}
  50.         else if (p1.value.length>15){sign='Максимальная длина пароля <b>15</b> символов';}
  51.         else if (p1.value.length<6){sign='Минимальная длина пароля <b>6</b> символов';}
  52.         else if (p1.value=='kDi3p9S7'){sign='Пароль из примера недопустим';}
  53.         else if (p1.value.match(/[^a-zA-Z0-9\-_]/)){sign='В пароле присутствуют недопустимые символы';}
  54.         else if (is==1){sign='Слишком простой пароль';}
  55.         else {passOK=1;}
  56.         if (passOK!=1){
  57.                 document.getElementById('chf2').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> <span style="font-size:7pt;">'+sign+'</span>';
  58.         }
  59.         else {
  60.                 chfl2=1;
  61.                 document.getElementById('chf2').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/ok.png" align="absmiddle" width="16" height="16">';
  62.         }
  63.         return chfl2;
  64. }
  65.  
  66. function checkPass1(){
  67.         chfl3=0;
  68.         var p1=document.getElementById('fPassword');
  69.         var p2=document.getElementById('fPassword1');
  70.         if (p1.value!=p2.value){
  71.                 document.getElementById('chf3').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> <span style="font-size:7pt;">Ошибка в подтверждении пароля</span>';
  72.         }
  73.         else if (passOK!=1){
  74.                 document.getElementById('chf3').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/er.png" align="absmiddle" width="16" height="16"> <span style="font-size:7pt;">Поле "Пароль" заполнено неправильно</span>';
  75.         }
  76.         else {
  77.                 chfl3=1;
  78.                 document.getElementById('chf3').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/icon/ok.png" align="absmiddle" width="16" height="16">';
  79.         }
  80.         return chfl3;
  81. }
  82.  
  83.  
  84.  
  85.  
  86. function checkFlds(f){
  87.         var chf1=1,chf2=1,chf3=1,chf2=1;
  88.         if (chfl1!=1){
  89.                 chf1=checkEmail();
  90.         }
  91.         if (chfl4!=1){
  92.                 chf4=checkName();
  93.         }
  94.         if (chfl2!=1){
  95.                 chf2=checkPass();
  96.         }
  97.         if (chfl3!=1){
  98.                 chf3=checkPass1();
  99.         }
  100.        
  101.        
  102.        
  103.        
  104.        
  105.         if (chf1!=1 || chf2!=1 || chf3!=1 || chf4!=1){
  106.                 document.getElementById('erFnd').innerHTML='Форма заполнена неправильно';
  107.         }
  108.         else if (!f) {
  109.                 document.getElementById('lTypeF').value='0';
  110.                 document.getElementById('erFnd').innerHTML='<img alt="" border="0" src="http://s12.ucoz.net/img/ma/m/i1.gif" align="absmiddle" width="16" height="16">';
  111.                 if (_phctr_state['uplPht1']){
  112.                         document.getElementById('lPhtThmb').value=_phctr_state['uplPht1'][0]+':'+_phctr_state['uplPht1'][1]+':'+Math.round(_phctr_state['uplPht1'][6]*10000)/10000;
  113.                 }
  114.                 _uPostForm('uNetRegF',{type:'POST',url:'/index/sub/'});
  115.         }
  116. }
  117. </script>
  118. <div align="center" class="forma1">
  119. <form id="uNetRegF" name="adduser" onsubmit="checkFlds();return false;">
  120. <p>Имя (ник): <input type="text" name="name" class="forma" size="40" maxlength="40" id="fName" onblur="checkName();"> <span id="chf4"></span>
  121. <br/> *А-я, A-z, от 3 до 20 букв</p>
  122. <p>Email: <input type="text" name="email" onblur="checkEmail();" id="fEmail" class="forma" size="40" maxlength="40"> <span id="chf1"></span><br/> *A-z, 0-9, от 10 до 20 букв</p>
  123. <p>Пароль: <input type="password" name="password" id="fPassword" onblur="checkPass();" class="forma" size="40" maxlength="40"> <span id="chf2"></span><br/> *A-z, 0-9, от 6 до 20 букв</p>
  124. <p>Подтвердите пароль: <input type="password" name="password1" id="fPassword1" onblur="checkPass1();" class="forma" size="40" maxlength="40"> <span id="chf3"></span><br/> *A-z, 0-9, от 6 до 20 букв</p>
  125. <p>Сколько будет <? $system->capcha(); ?>:&nbsp; <input type="text" name="pr" class="forma" size="40" maxlength="40"></p>
  126. <input type="hidden" name="start" value="kp" size="40" maxlength="40">
  127. <p><script type="text/javascript">document.write('<input type="submit" id="sbt47" value="Регистрация">');</script></p>
  128. <span id="erFnd" style="font-size:7pt;padding-left:10px;" class="myWinError"></span></td></tr>
  129. </form></div>
  130. </td>

нашёл на одном сайте функцию эту, вырезал от туда, и переделал под себя. если нужен исходник могу выложить

 

Powered by ExBB FM 1.0 RC1