Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: JavaScript: проверить содержимое HTML-формы по событию onSubmit
 
 автор: OLi   (12.04.2011 в 17:20)   письмо автору
 
 

Прописал событие OnSubmit
<form action="add_predpriatie.php" method="post" onSubmit="check()" enctype="multipart/form-data" id="my_form" class="formular">

Функция проверки формы:
function check(){

                var return_value = true;
                // регулярное вырожение, для проверки почтового ящика           
                
                var name_f = obj.formular.name_f.value;
                // заносим значение поля сообщение в переменную msg
                var msg = obj.formular.msg.value;
                // объявляем переменную куда будет заносится текст сообщения
                var error_msg = "Не корректно заполнины поля: ";
               
                
                if(name_f == ""){
                    error_msg += "Текст сообщения ";
                    return_value = false;
                }
                //проверка на наличие ошибок, если возникла ошибка ввыводим текст сообщения
                if(!return_value)
                    alert(error_msg);
                   
                return return_value;
            }


Почему не выводит сообщение о незаполненном поле?

  Ответить  
 
 автор: cheops   (12.04.2011 в 17:24)   письмо автору
 
   для: OLi   (12.04.2011 в 17:20)
 

>obj.formular.name_f
Это что за объекты и откуда они берутся?

  Ответить  
 
 автор: OLi   (12.04.2011 в 21:45)   письмо автору
 
   для: cheops   (12.04.2011 в 17:24)
 

Возможно я что-то неверно закодил....
name_f - это name input'a
а formular - класс формы

  Ответить  
 
 автор: cheops   (12.04.2011 в 21:57)   письмо автору
 
   для: OLi   (12.04.2011 в 21:45)
 

Проще добавить к каждому из проверяемых элементов id и обращаться к нему через document.getElementById(...). Может это несколько прямолинейно, зато надежно и работает в любом браузере.

  Ответить  
 
 автор: OLi   (12.04.2011 в 22:57)   письмо автору
 
   для: cheops   (12.04.2011 в 21:57)
 

Можете пример простой привести проверки одного поля input на пустоту?

  Ответить  
 
 автор: cheops   (13.04.2011 в 00:07)   письмо автору
 
   для: OLi   (12.04.2011 в 22:57)
 

Примерно так (здесь jQuery, но вполне можно обойтись и без него, получая значения value объекта document.getElementById(...), вместо ... значение атрибута id)
function sendrequest()
{
  var pattern = /^$/;
  var name = $('#sendquestion_name').val()
  if(name.match(pattern))
  {
    alert('Пожалуйста заполните поле "Ваше Имя"');
    return false;
  }
  var re = /^[-\w\._]+@([-\w]+\.)+[a-zA-Z]{2,7}$/;
  var email = $('#sendquestion_email').val()
  if(email.match(re) == null)
  {
    alert('Пожалуйста введите электронный адрес в формате somebody@somewhere.ru');
    return false;
  }
  var question = $('#sendquestion_question').val()
  if(question.match(pattern))
  {
    alert('Пожалуйста заполните поле "Ваш Вопрос"');
    return false;
  }
  return true;
}
sendquestion_name, sendquestion_email и sendquestion_question - это значения атрибута id полей ввода.

  Ответить  
 
 автор: OLi   (13.04.2011 в 00:23)   письмо автору
 
   для: cheops   (13.04.2011 в 00:07)
 

Благодарчик! Сработало! Только вот когда выскакивает сообщение о незаполненном поле, и после нажатия ok форма все же отправляется, что делать не надо...как это сделать?

  Ответить  
 
 автор: OLi   (13.04.2011 в 00:34)   письмо автору
 
   для: OLi   (13.04.2011 в 00:23)
 

Делаю так:
function check(){
var pattern = /^$/; 
var error_msg = "";

 var return_value = true; 
  var name = $('#name_f').val() 
  if(name.match(pattern)) 
  { 
    error_msg += 'Название фирмы'; 
    return false; 
    return_value = false; 
  } 
  
  var question = $('#forma').val() 
  if(question.match(pattern)) 
  { 
    error_msg += 'Форма собственности';
    return_value = false; 
    return false; 
  } 
  
  if(!return_value) 
                    alert(error_msg); 
                    return return_value;
  
  return true; 
           }
    </script>    


Не выводит alert ....Что я не так делаю?

  Ответить  
 
 автор: OLi   (13.04.2011 в 01:51)   письмо автору
 
   для: OLi   (13.04.2011 в 00:34)
 

Хелп, ребята, нужно очень срочно, перепробовал и так и сяк, какие -то тонкости не улавливаю!?

  Ответить  
 
 автор: cheops   (13.04.2011 в 10:10)   письмо автору
 
   для: OLi   (13.04.2011 в 00:34)
 

>Не выводит alert ....Что я не так делаю?
return false; из if-ов уберите, иначе у вас до последнего if дело просто не доходит.

  Ответить  
 
 автор: cheops   (13.04.2011 в 10:21)   письмо автору
 
   для: OLi   (13.04.2011 в 00:23)
 

>Только вот когда выскакивает сообщение о незаполненном поле, и после нажатия ok форма все
>же отправляется, что делать не надо...как это сделать?
В вызове обработчика обязательно укажите return
onclick='return check()'

  Ответить  
 
 автор: OLi   (13.04.2011 в 20:47)   письмо автору
 
   для: cheops   (13.04.2011 в 10:21)
 

Понял, а по поводу того, что не выводит сообщения?

  Ответить  
 
 автор: cheops   (13.04.2011 в 20:51)   письмо автору
 
   для: OLi   (13.04.2011 в 20:47)
 

Вместо
    return false;  
    return_value = false;
У вас везде должно быть только
    return_value = false;

  Ответить  
 
 автор: OLi   (13.04.2011 в 21:11)   письмо автору
 
   для: cheops   (13.04.2011 в 20:51)
 

Так все таки onclick? и куда его вешать на submit или форму?

  Ответить  
 
 автор: OLi   (13.04.2011 в 21:17)   письмо автору
 
   для: OLi   (13.04.2011 в 21:11)
 

Все разобрался. Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования