Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2010, 16:24
Новичок на форуме
Отправить личное сообщение для NoCash Посмотреть профиль Найти все сообщения от NoCash
 
Регистрация: 29.03.2010
Сообщений: 4

обработка данных AJAX
имеется такой код
function checkForm(nb_form2) {
// Заранее объявим необходимые переменные
var el, // Сам элемент
elName, // Имя элемента формы
value, // Значение
type; // Атрибут type для input-ов
// Массив списка ошибок, по дефолту пустой
var errorList = [];
// Хэш с текстом ошибок (ключ - ID ошибки)
var errorText = {
1 : "Не заполнено поле 'Имя'",
2 : "Не заполнено поле 'заголоовк'",
3 : "не выбран город",
//8 : "не выбрана категория и подкатегория",
//4 : "оставьте тельчик либо мыло для связи с вами",
5 : "введите цену",
7 : "не введен текст объявления",
6 : "решите пример"
}
// Получаем семейство всех элементов формы
// Проходимся по ним в цикле
for (var i = 0; i < nb_form2.elements.length; i++) {
el = nb_form2.elements[i];
elName = el.nodeName.toLowerCase();
value = el.value;
if (elName == "input") { // INPUT
// Определяем тип input-а
type = el.type.toLowerCase();
// Разбираем все инпуты по типам и обрабатываем содержимое
switch (type) {
case "text" :
if (el.name == "gnl_user" && value == "") errorList.push(1);
if (el.name == "gnl_name" && value == "") errorList.push(2);
if (el.name == "gnl_city" && value == "") errorList.push(3);
//if (el.name == "gnl_phone" && el.name == "gnl_email" && value == "") errorList.push(4);
if (el.name == "gnl_price" && value == "") errorList.push(5);
if (el.name == "code" && value == "") errorList.push(6);
break;
default :
// Сюда попадают input-ы, которые не требуют обработки
// type = hidden, submit, button, image
break;
}
} else if (elName == "textarea") { // TEXTAREA
if (value == "") errorList.push(7);
}// else if (elName == "select") { // SELECT
//if (value == 0) errorList.push(8);
//}
 else {
// Обнаружен неизвестный элемент ;)
}
}
// Финальная стадия
// Если массив ошибок пуст - возвращаем true
if (!errorList.length) return true;
// Если есть ошибки - формируем сообщение, выовдим alert
// и возвращаем false
var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList[i]] + "\n";
}
alert(errorMsg);
return false;
}

при неправльном заполнении полей алерт формируется и формируется верно. проблемма в том что когда вылазит сообщение алерта я тыкаю на ОК и у меня перезагружается страница и все заноситься в базу подскажите где ошибся
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2010, 22:11
Интересующийся
Отправить личное сообщение для lliberty Посмотреть профиль Найти все сообщения от lliberty
 
Регистрация: 12.03.2009
Сообщений: 14

Код, возможно и праавильный, но сдается мне что ты напортачил в самом обработчике формы, там где
<FORM onSubmit=...
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2010, 12:19
Новичок на форуме
Отправить личное сообщение для NoCash Посмотреть профиль Найти все сообщения от NoCash
 
Регистрация: 29.03.2010
Сообщений: 4

$text ="<form method='post' enctype='multipart/form-data' name='nb_form2' action='". $PHP_SELF ."'  onsubmit='return check()'>

тут вроде тоже все хорошо
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2010, 13:10
Интересующийся
Отправить личное сообщение для lliberty Посмотреть профиль Найти все сообщения от lliberty
 
Регистрация: 12.03.2009
Сообщений: 14

Сообщение от NoCash Посмотреть сообщение
$text ="<form method='post' enctype='multipart/form-data' name='nb_form2' action='". $PHP_SELF ."'  onsubmit='return check()'>"
Стоп, а что за функция check() при этом вызывается? Это тоже самое что и function checkForm(nb_form2)?
Пожалуйста, приведите весь обработчик.
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2010, 17:59
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

для верности надо в onsubmit добавить "return false"
а в IE "event.returnValue = false"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax и три <form> не работает. Как правильно сделать листание записей из базы данных? vlad275 AJAX и COMET 2 14.12.2009 14:04
формирую форму из данных полученных AJAx belbek AJAX и COMET 5 26.06.2009 15:01
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07
Обработка данных из формы в новом окошке diktator Events/DOM/Window 1 20.10.2008 12:51
Просмотр передаваемых данных через AJAX Гость AJAX и COMET 3 04.08.2008 14:34