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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте ! помогите.. как добавить в эту форму еще и чтобы по тому же стилю выдвало ошибку если введено меньше 7 цифр в поле...???
 
<script type="text/javascript">
var reg=/^\d+$/  
function checkIt(F){
  var f1=F.num2
   
  if(reg.test(f1.value)){
    return true;
    }
  else{alert('Допустимы только числовые данные')
    if(!reg.test(f1.value)){
      f1.style.backgroundColor='red'
      }
        return false
    }
  }
   
</script>  
 
num2= поле для ввода.

Всего записей: 3 | Зарегистр. 06-11-2009 | Отправлено: 00:08 11-11-2009 | Исправлено: Dusk09, 00:09 11-11-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dusk09
var reg=/^\d{7,}$/  
 
Добавлено:
Only4You

Цитата:
Дальше человек выбирает Вид доставки, если ПО предоплате то сумма не меняеться.
Если выбрал Наложенным платежом, то к уже имеющей сумме надо добавить n-ю сумму.  

а при чем тут проверка формы??

Цитата:
Хотелось бы что бы  в скрипт данные подставлялись автоматически.  

ну так подставляйте тем же способом, которым и генерите страницу

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:45 11-11-2009
dmention

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, можно ли без использования JavaScript задать чтобы в поле <TEXTAREA> было возможно ввести не более например 2000 символов? У поля <TEXT> есть свойство maxlength, а у <TEXTAREA> его нет... Как быть?
 
 
Если это невозможно, то надо зацепиться за события нажатия клавиши и пытаться посчитать количество в момент нажатия. Если превышает, то надо тменить ввод я полагаю.
 
Как это написать на JavaScript? Волнует в основном вопрос как выполнить отмену введенного символа.

Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 16:04 10-12-2009
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmention
такие вещи лучше проверять на сервере но если очень хочется:

Код:
<form onsubmit="var msg = document.getElementById('msg').value; if (msg.length > 100){ alert('Ограничение в 100 символов. Форма не будет отправлена'); return false; }">
    <textarea id="msg"></textarea>
    <input type="submit" />
</form>


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 18:44 10-12-2009
dmention

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
Не, я хочу сделать примерно вот так (см.внизу страницы):
http://letters.kremlin.ru/send
 
Только тут я понял программисты особо не запаривались:
1. Если нажать кнопку и не отпускать, то количество символов пересчитается только когда ее отпустишь.
2. Тоже самое если нажать бэкспэйс.
3. Количество оставшихся символов уходит в минус - бред. И для того, чтобы этого не происходило мне нужно, чтобы оно ограничивалось. Т.е. чтобы скрипт не позволял ввести 2001 символ, а не сообщал об ошибке при попытке отправить письмо.
4. Еще очень интересный момент, что будет происходить если выполнить команду "Вставить", а в буфере будет находиться текст длиннее 2000 символов!
 
Хотелось бы сделать красиво...
Я сейчас считываю длинну поля <TEXTAREA> когда на нем возникают события KeyPress и KeyUp. Первое позволяет пересчитывать сразу, тогда когда нажата и удерживается кнопка. Но, в этом случае никакой реакции не происходит на бэкспэйс.
Поэтому обрабатывается событие KeyUp.
 
Но, при этом сам ввод в поле более 2000 символов никак не запрещен. Поэтому я бы и хотел, например по событию KeyUp, если длина поля стала более 2000 символов, отменить ввод последнего. Или типа того...

Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 23:49 10-12-2009
andead



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

Цитата:
Т.е. чтобы скрипт не позволял ввести 2001 символ


Цитата:
Но, при этом сам ввод в поле более 2000 символов никак не запрещен.

кому надо всё равно введут сколько угодно, поэтому проверка нужна на сервере а не на клиенте

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 23:53 10-12-2009
dmention

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

Цитата:
кому надо всё равно введут сколько угодно, поэтому проверка нужна на сервере а не на клиенте

 
Во-первых, этих "кому надо", а точнее кто способен обойти проверку, наверняка будут единицы.
 
Во-вторых, а что даст проверка на сервере? Позволит тупо оборвать конец сообщения? Так это форма для того чтобы задать вопрос. А зачем он нужен без окончания? Смысл ограничения в том, чтобы люди коротко, четко и ясно формулировали вопрос, укладываясь в определенное количество знаков!
 
Если не найду способа как это реализовать, придется сделать как у Президента...

Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 07:29 11-12-2009
andead



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

Цитата:
Во-первых, этих "кому надо"

"кому-надо" могут быть пользователи с отключённым javascript или пользователи мобильных устройств
 

Цитата:
Так это форма для того чтобы задать вопрос. А зачем он нужен без окончания?

ваш вариант не лучше - печатает себе человек сообщение не глядя на монитор, поднимает глаза, а там половина напечатанного текста нет, умный разработчик побеспокоился за него. Или человек напечатал в ворде, копи&паст, а половина текста нет.
 

Цитата:
Если не найду способа как это реализовать

да пожалуйста:

Код:
<script>
function antiusability()
{
    var textarea = document.getElementById('msg');
    textarea.value = textarea.value.substr(0, 10);    
}
</script>
<textarea id="msg" onkeypress="antiusability()" onchange="antiusability()"></textarea>


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 09:07 11-12-2009 | Исправлено: andead, 09:11 11-12-2009
dmention

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
Спасибо!
 
Я где-то в этой теме читал, что getElementById('msg');  плохо работает в IE. Это правда?

Всего записей: 206 | Зарегистр. 09-07-2005 | Отправлено: 14:14 11-12-2009
andead



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

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 15:21 11-12-2009
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста пример формы где можно использовать только цифры и символы английского алфавита (a-z A-Z - то есть большие и маленькие), ну и пока верное значение не введено кнопка не доступна для отправки формы.

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 20:32 19-01-2010
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<script type="text/javascript">
 
function hideText(textContainer) {
document.getElementById(textContainer).style.disply = 'none';
}
 
setTimeout("hideText('myHideText')",5000)
 
</script>
 
Then in your HTML:
 
<p id="myHideText">This text will hide after 5 seconds!</p>  
 
Кто подскажет, почему не работает данный код?

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 21:44 20-01-2010
andead



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

Цитата:
Кто подскажет, почему не работает данный код?


Цитата:
disply



----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 21:59 20-01-2010
Artqookie

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем. В JavaScript я ламер, но методом тыка составил для себя проверку на формы, но никак не могу прикрутить к ней проверку значения email. Видел выше много всего, типа
Код:
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(d.f.eMail.value)
но у меня не получается заставить это работать. Вот форма, рабочий пример тут - http://artqookie.ru
 

Код:
<form action='...' method='...'>
<script type="text/javascript">
function FormCheck()
{
    var author = document.getElementById ('author');
    var email = document.getElementById ('email');
    var text = document.getElementById ('text');
    var submit = document.getElementById ('submit');
    
    var authorcheck = author.value;
    var emailcheck = email.value;
    var textcheck = text.value;
    if (authorcheck.length < 1 || emailcheck.length < 6 || textcheck.length < 1)
    {
        submit.disabled = true;
    }
    else
    {
        submit.disabled = false;
    }
 
}
</script>
        <label for='author'>Имя</label> <input onkeyup='FormCheck()' type='text' name='author' id='author' value='' tabindex='1' />
        <label for='email'>Почта</label> <input onkeyup='FormCheck()' type='text' name='email' id='email' value=' tabindex='2' />
        <label for='url'>Сайт</label> <input type='text' name='url' id='url' value='' tabindex='3' />
        <textarea id='text' name='comment' tabindex='4' value='' onkeyup='FormCheck()'></textarea>
        <input onkeyup='FormCheck()' name='submit' type='submit' id='submit' tabindex='5' value='Отправить' />
        <input type='hidden' name='...' value='...' />
</form>

 
Добавлено:
Всё, сделал сам, оказалось всё очень просто. Вот так, может кому нужно будет.
 
function FormCheck()
{
    var author = document.getElementById ('author');
    var email = document.getElementById ('email');
    var text = document.getElementById ('text');
    var submit = document.getElementById ('submit');
    var authorcheck = author.value;
    var emailcheck = email.value;
    var textcheck = text.value;
 
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(emailcheck) && authorcheck.length > 0 && textcheck.length > 0)
    {
        submit.disabled = false;
    }
else
    {
        submit.disabled = true;
    }
}

Всего записей: 1 | Зарегистр. 28-02-2010 | Отправлено: 15:23 28-02-2010
slammmasgeniy



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!
На жабе пытаюсь написать код проверки на заполненность формы, но пока что не очень то и получается. Подскажите как такое реализовать и в чём может быть проблема !?
Во общем то смысл такой. У меня есть инпут type=text с именем cena, их у меня 50 штук (инпутов в смысле), дальше идёт cena1, cena2 ... cena50 , так вот что бы не писать кучу кода пробовал записать в цикле, но оно работать не хочет.
Вот код !
 
for (var i = 1; i < 51; i++) {
if (document.form.cena[i].value == ""){
        alert("Введите значение!");
        return false;
                }
}
 
Так же потом нужно будет сделать проверку на ввод только одних цифр, но это потом, пока застрял на этом.
Проверил всё, проблема оказывается в выражении cena[i], смотрел такой синтаксис вроде существует в природе, но ....
Подскажите может есть другие варианты проверки этих полей ?!

Всего записей: 2 | Зарегистр. 07-03-2010 | Отправлено: 14:45 07-03-2010
andead



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

Цитата:
смотрел такой синтаксис вроде существует в природе

где смотрели?
 

Цитата:
Подскажите может есть другие варианты проверки этих полей ?!


Код:
if (document.getElementsByName('cena' + i)[0].value == "")

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 16:01 07-03-2010
slammmasgeniy



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
andead
Респект, заработало. огромнейшее спасибо.

Цитата:
где смотрели?  

......

Код:
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList[i]] + "\n";
}
alert(errorMsg);

 
может я просто неверно использовал синтаксис.. =)
Но всё равно сенкс...

Всего записей: 2 | Зарегистр. 07-03-2010 | Отправлено: 16:57 07-03-2010
Crocell

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

Всего записей: 329 | Зарегистр. 12-05-2007 | Отправлено: 22:17 07-03-2010 | Исправлено: Crocell, 22:21 07-03-2010
Anton T

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

Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 10:33 25-05-2010 | Исправлено: Anton T, 11:50 25-05-2010
Bijean

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот есть скрипт,полазил по теме,нашел кое что для себя.Но кое что так и не получилось
Мне нужно что бы проверялось,выбрал ли человек хотя б один из чекбоксов.И если все правильно ,то выводил сообщение об отправке.И возможно ли сохранять введенный текст,то есть если человек ввел что то не правильно - то все обнуляется.Заранее спасибо
 
 
<script>  
function checK(f) {  
if (f.name.value=='') {alert("Вы не указали свое имя");f.name.focus();return false}  
if (f.email.value=='') {alert("Вы не указали свой e-mail");f.email.focus();return false}  
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.email.value)){  
return true  
}  
alert('Вы не правильно ввели email');f.email.select()  
return false  
}  
 
</script>  
      <form  action="send.php" method="post" name="f" onSubmit="checK(this)" >
                   
        <label>
          <input type="checkbox" name="1" value="it" id="CheckboxGroup1_0" class="checkBx">
          IT Сервис</label>
        <br>
        <label>
          <input type="checkbox" name="2" value="lvs" id="CheckboxGroup1_1" class="checkBx">
          ЛВС и Телефония</label>
        <br>
        <label>
          <input type="checkbox" name="3" value="inet" id="CheckboxGroup1_2" class="checkBx" >
          Интернет Услуги</label>
        <br>
        <label>
          <input type="checkbox" name="4" value="sec" id="CheckboxGroup1_3" class="checkBx">
          Системы безопасности</label>
        <br>
       
<p>Введите имя:<br>
<input type="text" name="name"></p>
<p>Введите email:<br>
<input type="text" name="email"></p>
<p>Введите сообщение:<br></p>
<textarea name="message" rows="7" cols="40"></textarea>
<br>
<br>
<input type="submit" value="Отправить" class="submit">
</form>
 

Всего записей: 1 | Зарегистр. 21-02-2011 | Отправлено: 12:50 21-02-2011
Открыть новую тему     Написать ответ в эту тему

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