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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка формы без перезагрузки страницы с помощью jvascript

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Немогу разобраться.
gheka
Отправлено: 19 Декабря, 2011 - 19:34:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




есть форма в ней поле емайл его и нужно проверить на регулярный ворожения и на пустоту, так как пока не получается проверить даже на пустоту поэтому пишу только этот пункт. Проверка пустоты.
Вот форма:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form name="form" method="post" action="test1.php">
  3.   <select name="valuta">
  4.     <option value="Z">wmz</option>
  5.     <option value="robo">roboxchange</option>
  6.   </select>
  7. <input type="text" name="email" value="" />
  8. <input name="button" onclick="ter ()" type="submit" value="Отправить" />
  9. </form>
  10.  


Проверяю её с помощью:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <SCRIPT language="javascript">
  3. function ter(){
  4.        
  5. if(document.form.email.value != null) {
  6.                 return true;
  7.         }
  8.         else
  9.         {
  10.                 alert('Не корректно введён E-Mail!');
  11.             return false;
  12.         }
  13.  
  14.  
  15. }
  16. </SCRIPT>
  17.  


Перепробовал разные комбинации ничего не получается подскажите что делаю не так?
 
 Top
tuareg
Отправлено: 19 Декабря, 2011 - 19:40:37
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Наверное !==''
 
 Top
gheka
Отправлено: 19 Декабря, 2011 - 19:49:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




tuareg пишет:
Наверное !==''


Нет не так
 
 Top
Slesher
Отправлено: 19 Декабря, 2011 - 20:01:00
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




gheka,

CODE (html):
скопировать код в буфер обмена
  1. <SCRIPT language="javascript">
  2.  
  3. function ter(){
  4. var text = document.form.email.value;
  5. if(!text) alert("EMPTY");
  6. else alert(text);
  7. }
  8. </SCRIPT>
  9.  
  10. <form name="form" method="post" action="test1.php">
  11.  
  12.   <select name="valuta">
  13.  
  14.     <option value="Z">wmz</option>
  15.  
  16.     <option value="robo">roboxchange</option>
  17.  
  18.   </select>
  19.  
  20. <input type="text" name="email" value="" />
  21.  
  22. <input name="button" onclick="ter ()" type="button" value="Отправить" />
  23.  
  24. </form>
  25.  
  26.  
 
 Top
DlTA
Отправлено: 19 Декабря, 2011 - 20:04:09
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




<input type="email" required> (HTML5))
 
 Top
gheka
Отправлено: 19 Декабря, 2011 - 21:38:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Slesher пишет:
gheka,

CODE (html):
скопировать код в буфер обмена
  1. <SCRIPT language="javascript">
  2.  
  3. function ter(){
  4. var text = document.form.email.value;
  5. if(!text) alert("EMPTY");
  6. else alert(text);
  7. }
  8. </SCRIPT>
  9.  
  10. <form name="form" method="post" action="test1.php">
  11.  
  12.   <select name="valuta">
  13.  
  14.     <option value="Z">wmz</option>
  15.  
  16.     <option value="robo">roboxchange</option>
  17.  
  18.   </select>
  19.  
  20. <input type="text" name="email" value="" />
  21.  
  22. <input name="button" onclick="ter ()" type="button" value="Отправить" />
  23.  
  24. </form>
  25.  
  26.  




нет не работает вот я сделал но есть проблемка почемуто не получается выполнить всю функцию полностью. тоесть вот JAVASCRIPT:


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script language="javascript">
  3. function proverka_form()
  4. {
  5.         if (document.form.valyta.value == "Z_ROBO")
  6.         {
  7.                 document.form.action="@basedir@check/robopay.php";
  8.                 return true;
  9.         }
  10.         // Проверка стоит ли галочка в С правилами покупки товаров я ознакомлен(а)
  11.         if (document.getElementsByName('soglas').item(0).checked) {        
  12.             return true;
  13.         }
  14.         else {
  15.             alert('Вам необходимо ознакомиться с ПРАВИЛАМИ ПОКУПКИ ТОВАРОВ!');
  16.             return false;
  17.         }
  18.  
  19.  
  20. __________________________________________________
  21. ДАЛЬШЕ НЕ ПРОВЕРЯЕТ ОТПРАВЛЯЕТ ФОРМУ
  22. __________________________________________________
  23.  
  24.  
  25.         // проверка поля емайл на пустату
  26.         if(form.EMAIL != null && form.EMAIL.value.length == 0)
  27. {
  28. alert('поле "E-Mail" пустое');
  29. return false;}
  30.        
  31. // проверка поля емайл на слишком короткае
  32. if(form.EMAIL != null && form.EMAIL.value.length < 6)
  33. {
  34. alert('слишком короткий "E-Mail"');
  35. return false;}
  36. // проверка на регулярные вырожения
  37. if(!(/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(form.EMAIL.value)) )
  38. {
  39. alert("Введите правильный E-Mail адрес");
  40. return false;}
  41.        
  42.        
  43.  
  44. }
  45. </script>
  46.  
  47.  


Самое главное что по отдельность проверяет нормально, если убрать верхние 2 проверки то нижние проверки ЕМАЙЛ проверяет. А вместе почему то нет.

Как сделать так чтобы все проверки выполнились?


Сама форма полностью вот:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form name="form" method='POST' action='@basedir@check/paywm.php' onsubmit='javascript:return(proverka_form());'>
  3.             <input type='hidden' name='id' value='@did@'>
  4.                         <input type='checkbox' name='soglas'@disabled@>
  5.             <select size='1' name='valyta' class='button4'@disabled@>
  6.                                         <option selected value='Z'>@cena_z@ WMZ</option>
  7.                                         @cena_r@ @cena_e@ @cena_u@
  8.                     <option value='Z_ROBO'>ROBOKASSA</option>
  9.                                 </select><input type='text' name='EMAIL' size='25' class='button4'>
  10.                 <input type='submit' value='Оплатить и получить' class='button3'@disabled@>
  11.  
 
 Top
Viper
Отправлено: 20 Декабря, 2011 - 07:36:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)





правильнее
CODE (javascript):
скопировать код в буфер обмена
  1. if(document.form.email.value != '') {


с регуляркой несколько сложнее. Сначала патерн
CODE (javascript):
скопировать код в буфер обмена
  1. var email = document.form.email.value;
  2. var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
  3. ".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
  4. -Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  5.  
  6. if (regex.test(email) && email != '') { // true


Регулярка не моя, но рабочая. Также стоит учитывать IDN в email адресах, т.к. вышеприведенная регулярка только для латиницы + цифры.

(Отредактировано автором: 20 Декабря, 2011 - 07:38:10)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
gheka
Отправлено: 20 Декабря, 2011 - 15:01:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Viper пишет:
правильнее
CODE (javascript):
скопировать код в буфер обмена
  1. if(document.form.email.value != '') {


с регуляркой несколько сложнее. Сначала патерн
CODE (javascript):
скопировать код в буфер обмена
  1. var email = document.form.email.value;
  2. var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
  3. ".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
  4. -Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  5.  
  6. if (regex.test(email) && email != '') { // true


Регулярка не моя, но рабочая. Также стоит учитывать IDN в email адресах, т.к. вышеприведенная регулярка только для латиницы + цифры.


Это понятно но дело не в том что не работают какие то проверки а дело в том что они не не выполняются все вместе, 2 первых выполняются а дальше нет. Если убрать 2 первых проверки то о стольные выполняются. Не могу понять почему так в этом и вопрос как сделать так чтобы выполнялись все проверки?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB