Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: Проверка значений элементов формы (e-mail, имя..

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Открыть новую тему     Написать ответ в эту тему

Kaii

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, кто знает, как сделать JavaScript'ом проверку формы на заполнение имени и сообщения и валидности мейла?

Общая информация о регулярных выражениях в Javascript:
http://www.johnrobertmorris.com/dev/Regex.asp
http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435/

Инструментарий для проверки регулярных выражений:
http://www.cuneytyilmaz.com/prog/jrx/
 





Переименовал. — Svarga.

Всего записей: 35 | Зарегистр. 15-11-2002 | Отправлено: 20:05 16-11-2002 | Исправлено: Cheery, 00:39 05-10-2006
worldhosting



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
возьми готовый на internet.com  раздел cut'n'past полно таких скриптов

----------
виртуальные и физические серверы от 249 ₽ в Германии или России. SSD хостинг от 179 ₽ в Германии и России

Всего записей: 2570 | Зарегистр. 11-09-2002 | Отправлено: 23:15 16-11-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kaii
<form .....  onsubmit="return Filled()>
и в функции filled проверяешь все, что тебе нужно.

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 23:23 16-11-2002
Kaii

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raven
Хм, проблема в том, что в JavaScript'е я не рублю, а то б написал

Всего записей: 35 | Зарегистр. 15-11-2002 | Отправлено: 00:35 17-11-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
 
<form action="имя_скрипта" name="Form1" onsubmit="return Filled()">
<input type=text name="name">
<input type=text name="email">
<input type=submit value="OK"
</form>
 
function Filled() {
if document.Form1.name.value=""  
{
alert ("Введите имя");
return false;
}
if document.Form1.email.value != ""
{
valid_chars  ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
valid_chars += "1234567890";
valid_chars += "-@_.";
str=document.form1.email.value;
valid_string = true;
    for(i=0; i < str.length; i++ )
     {
       current_valid_char = false;
       for(j=0; j < valid_chars.length; j++)
         {
           if(str.charAt(i) == valid_chars.charAt(j))
             {
               current_valid_char = true;
             }
         }
       if(current_valid_char == false)
         {
          valid_string = false;
         }
     }
     return valid_string;
   }
else
{
    return false;
}
 

Че-то типа этого.

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 00:51 17-11-2002
Kaii

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ok, спасибо

Всего записей: 35 | Зарегистр. 15-11-2002 | Отправлено: 02:33 17-11-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kaii
Не за что.

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 14:43 17-11-2002
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kaii,
или такой довольно античеловечно-садистский вариант:

Код:
<script>
var d=document
function checK() {
if (d.f.namE.value=='') {d.f.namE.value=window.prompt("а зовут-то как?",'');checK()}
if (d.f.eMail.value=='') {d.f.eMail.value=window.prompt("не... мыло надо написать",'');
if (d.f.eMail.value=='null'){d.f.namE.value=''}checK()}
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(d.f.eMail.value)){
return true
}
d.f.eMail.value=window.prompt('такое мыло не пойдет.\nисправляем',d.f.eMail.value);
if (d.f.namE.value=='null'){d.f.namE.value=''}
checK()
}
</script>
<form name=f onSubmit="return checK()">
Name<br><input type=text name=namE value=""><br>
E-mail Address:<br><input type=text name=eMail>
<br><input type="submit" value="Submit"></form>
пока имя и правильное мыло не введут-- скрипт не отвяжется
 
если то же самое, только в более человечном варианте, то вроде того:

Код:
<script>
function checK(f) {
if (f.namE.value=='') {alert("а зовут-то как?");f.namE.focus();return false}
if (f.eMail.value=='') {alert("не... мыло надо написать");f.eMail.focus();return false}
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.eMail.value)){
return true
}
alert('такое мыло не пойдет.\nисправляем');f.eMail.select()
return false
}
</script>
<form name=f onSubmit="return checK(this)">
Name<br><input type=text name=namE value=""><br>
E-mail Address:<br><input type=text name=eMail>
<br><input type="submit" value="Submit"></form>



----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 01:40 18-11-2002 | Исправлено: Svarga, 01:41 18-11-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Svarga
Ссадюга

----------
n/a

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 23:58 18-11-2002
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raven
а я-то что?  
для потенциальных маньяков же, а не для себя писал %)

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 02:02 19-11-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Тогда ладно!

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 14:13 19-11-2002
TuMoXa



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос спецам js. Тоже обработка формы...
есть форма. 20 полей. 1 "селект" и 19 "текстов".
нужно:
чтобы при выборе того или иного пункта в селекте, становились доступны или недоступны некоторые "тексты".
Поясню:
Форма заведения электронного контракта.
В "селекте" выбор - юридическое или физическое лицо.
В остальных - реквизиты и другие данные.
Так вот для физических лиц многие поля не нужны из тех, что всего есть на форме.
Все используются только у юридических.
Вопрос:
как сделать чтобы при выборе в "селекте" физического лица, становились недоступны ненужные поля?
Заранее благодарен!

Всего записей: 202 | Зарегистр. 29-12-2001 | Отправлено: 08:07 21-07-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TuMoXa
плиз, приведи код самой формы (так проще думается )

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 10:52 21-07-2003
TuMoXa



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ок:

Код:
 
       <form name=new method=post target=\"\">
       <input type=text name=contract_number class=frm>
       <input type=text name=tel class=frm>
 
       <select name=contract_type class=frm>
       <OPTION VALUE=0 selected>Физическое лицо</option>
       <OPTION VALUE=1>Юридическое лицо</option>
       <OPTION VALUE=2>Служебный</option>
       <OPTION VALUE=3>Бесплатный</option>
       </select>
       <input type=text name=fax class=frm>
       <input type=text name=name class=frm>
       <input type=text name=mail class=frm>
       <input type=text name=first_name class=frm>
       <input type=text name=account class=frm>
       <input type=text name=contact class=frm>
       <input type=text name=bank class=frm>
       <input type=text name=rnn class=frm>
       <input type=text name=code class=frm>
       <input type=text name=real_addr class=frm>
       <input type=text name=mfo class=frm>
       <input type=text name=off_addr class=frm>
       <input type=text name=note class=frm>
       <input class=frm3 type=submit value=Создать>
       </form>
 
 

Всего записей: 202 | Зарегистр. 29-12-2001 | Отправлено: 13:23 21-07-2003 | Исправлено: TuMoXa, 13:49 21-07-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TuMoXa
Смотри:

Код:
<form name=new method=post target=/>
<script>
// перечисляем имена текстовых полей, которые дизэйблить
// для физических лиц
var personDisabled=new Array("fax","account","bank","rnn","mfo","off_addr")
 
function doDisable(val){
var f=document.forms[0]
for (var i=0;i<f.elements.length;i++)
{
f.elements[i].disabled=false
}
if (val=='0')
{
for (var i=0;i<personDisabled.length;i++)
{
eval('var tmp=f.'+personDisabled[i])
tmp.value=''
tmp.disabled=true
}
}
}
</script>
<br>contact_number<input type=text name=contract_number class=frm>  
<br>tel<input type=text name=tel class=frm>  
<select name=contract_type class=frm onChange="doDisable(this.options[this.options.selectedIndex].value)">  
<OPTION VALUE=0 selected>Физическое лицо</option>  
<OPTION VALUE=1>Юридическое лицо</option>  
<OPTION VALUE=2>Служебный</option>  
<OPTION VALUE=3>Бесплатный</option>  
</select>  
<br>fax<input type=text name=fax class=frm disabled>  
<br>name<input type=text name=name class=frm>  
<br>mail<input type=text name=mail class=frm>  
<br>first_name<input type=text name=first_name class=frm>  
<br>account<input type=text name=account class=frm disabled>  
<br>contact<input type=text name=contact class=frm>  
<br>bank<input type=text name=bank class=frm disabled>  
<br>rnn<input type=text name=rnn class=frm disabled>  
<br>code<input type=text name=code class=frm>  
<br>real_addr<input type=text name=real_addr class=frm>  
<br>mfo<input type=text name=mfo class=frm disabled>  
<br>off_addr<input type=text name=off_addr class=frm disabled>  
<br>note<input type=text name=note class=frm>  
<br><input class=frm3 type=submit value=Создать>  
</form>  

Какие элементы дизэйблить для физического лица-- выставляй сам (я поставил-- "fax","account","bank","rnn","mfo","off_addr", но не уверен, что так и должно быть)... дальше, оттого, что по умолчанию в <select>'е выделено "Физическое лицо", я задизэйблил те же элементы по умолчанию. Когда после выбора "юридического лица" опять выбирается физическое-- я не только дизэйблю соответствующие элементы, но и очищаю их (если такое не надо-- просто убери строчку tmp.value='' )
 
PS. не понял, к чему "Служебный" и "Бесплатный", поэтому ничего с ними не делал, т.е. изменения происходят только при выборе "физического лица"
 
Добавлено
ps. "new"-- плохое имя формы

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 10:27 22-07-2003 | Исправлено: Svarga, 10:51 22-07-2003
TuMoXa



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Огромное спасибо! Дальше я думаю сам разберусь
ps
А почему "new" - плохое имя?
тем более, что это имя все равно нигде не используется... ни разу больше и не упоминается нигде.. написал его только потому, что положено по w3c

Всего записей: 202 | Зарегистр. 29-12-2001 | Отправлено: 06:59 23-07-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TuMoXa

Цитата:
А почему "new" - плохое имя?  

зарезервированное слово в JavaScript
 
(к слову, var a=new Array("a",1);)
 

Цитата:
 написал его только потому, что положено по w3c

через него проще к форме обращаться JavaScript'ом, чем через document.forms[0], который я написал оттого, что из-за new проглючки были...

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 07:03 23-07-2003
TuMoXa



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Svarga
Спасибо большое!
Теперь немного офтопа.
Немог бы ты объяснить на пальцах как ты дизаблишь элементы по умолчанию, то есть без вызова функции? ведь функция вызывается только по событию onChange?
и второй вопрос:
а что за функция eval? в справочнике читал, но не очень понял... объясни, если не тяжело.
ps
просто я пару дней назад всего впервые в жизни с JScript столкнулся.
извини, если глупые вопросы задаю....

Всего записей: 202 | Зарегистр. 29-12-2001 | Отправлено: 15:36 30-07-2003 | Исправлено: TuMoXa, 15:37 30-07-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TuMoXa
лучше поздно, чем никогда
Только сейчас заметил, что ты ещё о чём-то спрашивал... сорри!
 

Цитата:
Немог бы ты объяснить на пальцах как ты дизаблишь элементы по умолчанию, то есть без вызова функции?

HTML'ем:
<input type=text name=fax class=frm disabled>  

Цитата:
а что за функция eval?  

evaluate, т.е. исполняет кусок кода, который передаётся ей в виде строкового значения, напр: var a="alert";eval(a+'(1)')

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 07:52 22-09-2003
TuMoXa



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я уж разобраться успел
Но все равно спасибо большое

Всего записей: 202 | Зарегистр. 29-12-2001 | Отправлено: 09:13 22-09-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: Проверка значений элементов формы (e-mail, имя..


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru