Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> провера поля формы 
:(
    Опции темы
DENAT
Дата 5.6.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.12.2007

Репутация: нет
Всего: нет



в этой форме проверяется поля e-mail на наличее знака @ а надо чтоб он проверял еще добаленные поля e-mail smile ЗАРАНЕЕ СПАСИБО!!!!!!
Код

<html>
<head>
    <title>Добавление полей в форму</title>
    
<script type="text/javascript">
var countOfFields = 1; // Текущее число полей
var a = 0; // Уникальное значение для атрибута name
var maxFieldLimit = 5; // Максимальное число возможных полей
function deleteField(a) {
    // Получаем доступ к ДИВу, содержащему поле
    var contDiv = a.parentNode;
    // Удаляем этот ДИВ из DOM-дерева
    contDiv.parentNode.removeChild(contDiv);
    // Уменьшаем значение текущего числа полей
    countOfFields--;
    // Возвращаем false, чтобы не было перехода по сслыке
    return false;
}
function addField() {
    // Проверяем не достигло ли число полей максимума
    if (countOfFields >= maxFieldLimit) {
        alert("ВСЕ");
        return false;
    }
    // Увеличиваем текущее значения числа полей
    countOfFields++;
    // Увеличиваем ID
    a++;
    // Создаем элемент ДИВ
    var div = document.createElement("div");
    // Добавляем HTML-контент с пом. свойства innerHTML
    div.innerHTML = "<input name=\"name" + a +"\" type=\"text\" /> <a onclick=\"return deleteField(this)\" href=\"#\">[X]</a>";
    // Добавляем новый узел в конец списка полей
    document.getElementById("parentId").appendChild(div);
    // Возвращаем false, чтобы не было перехода по сслыке
    return false;

}

function test2(form) {
  if (form.name_.value == "" ||  form.name_.value.indexOf('@', 0) == -1) 
        alert("Неверно введен адрес e-mail!");
  else alert("OK!");
}

</script>
</head>
<body>
<form  method="GET" action="#" name="form1">
<input type="submit" value="Послать на e-mail">
    <div id="parentId">
        <div><input name="name" type="text" />Фамилия
        <div><input name="name" type="text" />Имя

<div><input name="name_" type="text" />е-mail
<input type="button" name="button2" value="Проверка e-mail" onClick="test2(this.form)">
<a onclick="return addField()" href="#">Добавить еще поле E-mail</a></div>





сории за ошибочку в названии темы smile 

Это сообщение отредактировал(а) DENAT - 5.6.2008, 15:00
PM MAIL   Вверх
krundetz
Дата 5.6.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Все очень просто надо чтобы все ваши поля с e-mail имели бы одинаковые идентификаторы например класс "e-mail", далее вы их все находите у вас будет масив а затем пробегаете делая точно такуюже проверку как вы делаете сейчас.
Кстати ваш скрипт примет за e-mail и такую строку: k@k


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
DENAT
Дата 5.6.2008, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.12.2007

Репутация: нет
Всего: нет



Цитата(krundetz @ 5.6.2008,  15:56)
Все очень просто надо чтобы все ваши поля с e-mail имели бы одинаковые идентификаторы например класс "e-mail", далее вы их все находите у вас будет масив а затем пробегаете делая точно такуюже проверку как вы делаете сейчас.
Кстати ваш скрипт примет за e-mail и такую строку: k@k

Если можно то покажите на примере как это сделать(я еще токо осваиваю js).
Ну и спасибо за то что уже подсказали!!!! smile 
PM MAIL   Вверх
krundetz
Дата 6.6.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Начнем по порядку:
1. Меняете
Код

<input name="name_" type="text" />

на
Код

<input name="name_" type="text" class="e-mail"/>

2. В функции которая создает меняем
Код

div.innerHTML = "<input name=\"name" + a +"\" type=\"text\" /> <a onclick=\"return deleteField(this)\" href=\"#\">[X]</a>";

на
Код

div.innerHTML = "<input name=\"name" + a +"\" type=\"text\"  class="e-mail"/> <a onclick=\"return deleteField(this)\" href=\"#\">[X]</a>";

3. Функция которая проверяет примет следующий вид.
Код

function test2(form) 
{
     elements = form.getElementByTagName('input');
     size = element.length;
     for(var i = 0; i < size; i++)
     {
          if(elements[i].getAttribute('class') == 'e-mail')
          {
               if (elements[i].value == "" || elements[i].value.indexOf('@', 0) == -1)
                      alert("Неверно введен адрес e-mail!");
               else alert("OK!");
          }
     }
}

Возможно лучше использовать createElement вместо innerHTML так как innerHTML не создает элемент в дом структуре вроде а значит его нельзя будет найти.
Также проверку e-mail лучше делать регулярным выражением.

Это сообщение отредактировал(а) krundetz - 6.6.2008, 11:45


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Ghirik
Дата 7.6.2008, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



krundetz, создает....

Здесь где то было, но лень искать, вот у меня сохранена копия примера.

Код

<html>
<head>
<script type="text/javascript">
var counter = 0;
function addDOM(ob) {
   var inp = document.createElement('input');
      ob.appendChild(inp);
        inp.setAttribute('name','dom'+(counter++));
        inp.setAttribute('type','text');
        inp.setAttribute('value','В порядке?');
}
function addInnerHTML(ob) {
   ob.innerHTML+='<input type="text" name="inner'+(counter++)+'" value="В порядке?" />';
}
</script>
</head>
<body>
<input value="HTML" type="button" onclick=alert(document.body.innerHTML)>
<form action="info.php">
    <input type="text" name="one" value="В порядке" />
    <input type="text" name="two" value="В порядке?" style="display:none" />
    <input type="button" value="Добавить через DOM" onclick="addDOM(this.form)" />
    <input type="button" value="Добавить через innerHTML" onclick="addInnerHTML(this.form)" />
    <input type="submit" />
</form>
</body>
</html>




--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.