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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Zeroglif

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

Код:
('123456789'.search(/^\d\d\d\d\d\d\d\d\d/$)>-1)?alert('совпадает'):alert('не совпадает');

урл

Код:
('http://www.google.com'.search(/^(ht|f)tps?:\/\/.+/)>-1)?alert('совпадает'):alert('не совпадает');
а вообще вариантов может быть масса, в зависимости от глубины проверки, к примеру варианты для проверки мэйла - http://www.regexlib.com/DisplayPatterns.aspx

Всего записей: 2105 | Зарегистр. 19-05-2003 | Отправлено: 21:21 16-05-2005
vitovt



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а как енто все записать? ну типа просто
 
<script>
 
 

Цитата:
('http://www.google.com'.search(/^(ht|f)tps?:\/\/.+/)>-1)?alert('совпадает'):alert('не совпадает');  

 
</script>

Всего записей: 1087 | Зарегистр. 02-05-2002 | Отправлено: 17:47 17-05-2005
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
День добрый,
 
Из 5-ти страниц вытащил следующее и вставил в скрипт:
 
Подробнее...
 
Но при нажатии на кнопку-картинку происходит просто обновление страницы. В чем может быть проблема?
Спасибо.

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 11:40 27-08-2005
dimm00



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk
Вот рабочий вариант твоего примера:

Код:
 
<script language="JavaScript">  
<!--  
function Filled() {    
  if (document.form1.Title.value=="") {    
    alert ("ВВедите имя");    
    return false;    
  } else {  
    return true;  
  }
}    
//-->  
</script>  
<!-- /Проверка ввода -->  
 
<form method="post" action="..." name="form1">  
    <input name="Title" type="text">  
    <a href="#" onClick="if (Filled()) form1.submit();"><img src="..."></a>  
</form>
 

Всего записей: 11 | Зарегистр. 13-08-2005 | Отправлено: 13:08 27-08-2005
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dimm00
Спасибо, все равботает.
 
Но возникла еще одна маленькая проблема: у меня для ввода текста исползуется WYSIWYG-редактор.
Поле ввода выглядит слуедующим образом:
<textarea id="elm1" name="Text"></textarea>
Но проверка вида
 

Код:
  if (document.form1.Text.value=="") {    
    alert ("Введите текст!");
    form1.Text.focus();    
    return false;    
  } else {  
    return true;    
  }  

 
 не работает: постоянно выскакивает сообщение "Введите текст!" и не происходит фокусировки в textarea.


----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 13:06 28-08-2005
dimm00



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

Код:
 
<script language="JavaScript">  
<!--  
function Filled() {    
  if (document.form1.Text.value=="") {      
    alert ("Введите текст!");  
    document.form1.Text.focus();      
    return false;      
  } else {    
    return true;    
  }  
}    
//-->  
</script>  
<form method="post" action="..." name="form1">  
    <input name="Title" type="text"> <br>
    <textarea id="elm1" name="Text"></textarea>
    <a href="#" onClick="if (Filled()) form1.submit();"><img src="..."></a>  
</form>
 

Этот код у меня прекрасно работает.  
Возможная причина твоей проблемы содержится в коде html.

Всего записей: 11 | Зарегистр. 13-08-2005 | Отправлено: 21:12 28-08-2005
Zeroglif

...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
3xp0
 
Ответ на этот вопрос.

Код:
<input type=text size=10 onkeyup=(function(a){if(/\'/.test(a.value))a.value=a.value.replace(/\'/g,'')})(this)>

А вообще, лечить инпут сходу - не самый удобный вариант. Лучше проверить value перед отправкой и тихо его подправить или же дать юзверю самому нажать кнопку OK.

Всего записей: 2105 | Зарегистр. 19-05-2003 | Отправлено: 01:48 21-09-2005
drow



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если ветка еще не померла, то ответьте на такой вопрос. Надо проверить правильность ввода времени в 24-часовом формате, чч:мм. Есть элегантное решение?

Всего записей: 42 | Зарегистр. 05-10-2004 | Отправлено: 18:23 13-06-2006
Oleg_Tarusov



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

Код:
<script>  
function checK(f) {  
  if (!(/^\d{2}\.?\d{2}\.?\d{2}$/.test(f.dater.value))) {
       alert('Дата в формате дд.мм.гг.\nисправляем');
       f.dater.select()  
       return false  
  }  
  if (!(/^\D{2,10}\b\D{2,10}$/.test(f.fio.value))) {
       alert('Имя и Фамилия - 2 слова без цифр \от 2 до 10 символов\nисправляем');f.fio.select();
       return false;
  }  
  if (f.email.value=='') {alert("не... мыло надо написать");f.email.focus();return false}  
  if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.email.value))) {
       alert('такое мыло не пойдет.\nисправляем');f.email.select()  
       return false  
  }  
  if (!(/^\d{6}$/.test(f.chip.value))) {
       alert('Номер  состоит из 6 цифр.\nисправляем');
       f.chip.select();
       return false;
  }
 
  return true;
}
</script>



Добавлено:
 
drow

Код:
<script type = "text/javascript">
function check() {
  var pattern = /^([0-1][0-9]|2[0-3]):[0-5][0-9]$/;
  if (!(pattern.test(frm.chas.value))) {
      alert("Облом");
      return false;
  }
  submit();
}
</script>
<form onsubmit = "check()" name = "frm">
<input type = "text" name = "chas"><br>
<input type = "submit">
</form>



Добавлено:
 
GennadyNetExpert
 
Попробуй в свойствах, которые не хочешь менять, поставить ! important.
Типа такого:
P {color:red ! important}

Всего записей: 175 | Зарегистр. 25-02-2006 | Отправлено: 02:22 14-06-2006 | Исправлено: Oleg_Tarusov, 15:42 14-06-2006
vitovt



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

Цитата:
if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(document.card_form.card_recipient_mail.value)))
              {  
                
                alert('Пожалуйста, введите e-mail получателя правильно');
                return false;
              }

 
но теперь надо вставить сюда и еще такой варинат:  
Ivan Pupkin <mymail@hotbox.com>
как?

Всего записей: 1087 | Зарегистр. 02-05-2002 | Отправлено: 14:09 14-08-2006
Forcerr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
По примеру ввода даты, переделал проверку под свои нужды, а точнее мне нужно сума в формате _____.__(руб.коп).  
 

Код:
function check(cat){
if ((/^\d{1,5}\.?\d{1,2}$/.test(cat.price.value)))
{
    submitForm();
    return true
}
{       alert('Цена  в формате руб.коп(____.__)');
       cat.price.focus()
       return false
}
}
 

Но мне нужно чтобы был вариант когда указано просто первая часть без точки, тоесть без копеек. Подскажите как реализовать. И еще посоветуйте что почитать про написание шаблонов типа (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test, так как хотелось бы и самому до конца понимать как это работает, и не задавать глупых вопросов. Пока я только понял что w это буквенный формат, d - числовой

Всего записей: 121 | Зарегистр. 10-02-2003 | Отправлено: 15:56 28-08-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
\w-это слово [A-Za-z0-9_]
\d-число
[]-класс символов то есть [abcd] любой символ из a,b,c,d, [^abcd]-кроме этих символов.
*,?,+ это количество совпадений(квантификаторы):
0 или более
1 или более
1 или 0 или более совпадений соответственно.
Еще квантификаторы пишут например так:{MIN,MAX} диапазоны
^,$-начало и конец строки соответственно,
()-группировки, заносятся в массив совпадений(если конечно программист не закоментировал или не экранировал скобки например).
Это только по вот этому шаблону.
 
Добавлено:
 function check(cat){
if ((/^\d{1,5}\.?\d{1,2}$/.test(cat.price.value)) or (/^\d{1,5}$/.test(cat.price.value)))
{
    submitForm();
    return true
}
{       alert('Цена  в формате руб.коп(____.__)');
       cat.price.focus()
       return false
}
}
 Если не применять условные расширенные последовательности RegExp'ов, то это будет самым быстрым решением.

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 21:15 28-08-2006
Forcerr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Brodyaga
Спасибо, объяснил очень хорошо!
А насчет if ((/^\d{1,5}\.?\d{1,2}$/.test(cat.price.value)) or (/^\d{1,5}$/.test(cat.price.value)))  можно было и самому догадаться, иногда даже не задумываешься что ответ может быть таким простым

Всего записей: 121 | Зарегистр. 10-02-2003 | Отправлено: 10:53 29-08-2006
vworld



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

Всего записей: 2617 | Зарегистр. 13-02-2003 | Отправлено: 09:31 14-09-2006
DMx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите найти скрипт для проверки кредитки на JS. Проверить нужно Diners, AMEX и VISA, т.е. переданный из формы номер может принадлежать к одному из этих типов.
Сделать срочно нужно...

Всего записей: 154 | Зарегистр. 23-09-2003 | Отправлено: 21:33 04-10-2006
Cheery



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

Цитата:
Помогите найти скрипт для проверки кредитки на JS.  

проверять что? что там только цифры и нужно количество? так уже упоминалось выше..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:34 04-10-2006
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DMx
http://regexlib.com/Search.aspx?k=card
vworld
Нужна информация по регуляркам в РНР?

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 21:41 04-10-2006
DMx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Не уверен, что конкретно, т.к. сам не пользуюсь кредитками... Например, следует проверить первую цифру, на соответствие типу карты.
И далее, думаю, у разных типов карт разное кол-во цифр, верно? (Если нет, то поправьте меня -)).
Вообще, набирается еще две проверочки.  
В JS я мало чего кодил, поэтому опыта мало... нужны, короче говоря, готовые функции.  
 
Добавлено:
Brodyaga
Огромное спасибо за сайт, там много всего интересного. 8-)  
Хотел использовать след. regexp:

Код:
^(??<Visa>4\d{3})|(?<Mastercard>5[1-5]\d{2})|(?<Discover>6011)|(?<DinersClub>(?:3[68]\d{2})|(?:30[0-5]\d))|(?<AmericanExpress>3[47]\d{2}))([ -]?)(?(DinersClub)(?:\d{6}\1\d{4})|(?(AmericanExpress)(?:\d{6}\1\d{5})|(?:\d{4}\1\d{4}\1\d{4})))$

Но он не работает (IE пишет ошибку). Нужен либо аналог, либо помогите поправить этот, плиз.

Всего записей: 154 | Зарегистр. 23-09-2003 | Отправлено: 23:48 04-10-2006
Cheery



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

Цитата:
Но он не работает (IE пишет ошибку). Нужен либо аналог, либо помогите поправить этот, плиз.

когда просим об исправлении ошибки - указываем часть кода, так как ошибка может быть и в нем..
 

Цитата:
И далее, думаю, у разных типов карт разное кол-во цифр, верно?  

да, у амекса на одну цифру меньше

Цитата:
Например, следует проверить первую цифру, на соответствие типу карты.  

да, первая тоже отличается для разных типов

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:25 05-10-2006 | Исправлено: Cheery, 00:26 05-10-2006
DMx



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

Цитата:
когда просим об исправлении ошибки - указываем часть кода, так как ошибка может быть и в нем..

На том сайте, откуда этот regexp, в комментах так и написано, что он не пашет совместно с Явой (IE6).
IE указывает ошибку именно на регулярное выражение. Да и сам код у меня предельно простой, проверять практически нечего.

Всего записей: 154 | Зарегистр. 23-09-2003 | Отправлено: 00:32 05-10-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 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