С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312

Jq validation один скрипт отправки для всех писем по классу

15.07.2019, 13:10. Показов 1628. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как в jqvalidation сделать, что бы по одному классу отправлять письма в случаях прохождения валидации, у меня есть у все форм общий класс "application_form" но что то вот такая строка не отрабатывает и написал 3 раза для каждой свой.

JavaScript
1
2
3
submitHandler: function(){
    send_form(".application_form");
}
вернее отрабатывает, но в письме прихоит только название формы, без данных из полей.


Код форм:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post" action="javascript:void(0);" name="Верхняя форма" class="application_form top_form">
            <span class="af_text">Оставьте заявку</span>
            <div class="af_input validate"><input name="name" type="text" placeholder="Ваше имя"></div>
            <div class="af_input validate"><input name="tel" type="text" placeholder="Ваш телефон"></div>
            <input type="submit" class="af_submit" value="Оставить заявку">
        </form>
 
 
<form name="Нижняя форма" method="post" action="javascript:void(0);" class="application_form bot_form">
            <span class="af_text">Оставьте заявку</span>
            <div class="af_input validate"><input name="name" type="text" placeholder="Ваше имя"></div>
            <div class="af_input validate"><input name="tel" type="text" placeholder="Ваш телефон"></div>
            <input type="submit" class="af_submit" value="Оставить заявку">
        </form>
 
<form name="Форма из модального окна" method="post" action="javascript:void(0);" class="application_form modal_form">
            <span class="af_text">Оставьте заявку</span>
            <div class="af_input validate"><input name="name" type="text" placeholder="Ваше имя"></div>
            <div class="af_input validate"><input name="tel" type="text" placeholder="Ваш телефон"></div>
            <input type="submit" class="af_submit" value="Оставить заявку">
        </form>


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//send form
function send_form(obj) {
        var form_name = $(obj).attr('name');
    var msg = $(obj).serialize() + '&form_name='+form_name;
    $.ajax({
        type: "POST",
        url: "send_form.php",
        data: msg,
        success: function(data) {
            alert("Сообщение успешно отправлено. Мы свяжемся с вами в ближайшее время!");
        },
        error: function(xhr, str) {
            alert("Возникла ошибка!");
        }
    });
}
 
 
$(document).ready(function() { 
 
//form validation
$(".top_form").validate({
    rules: {
        name:{
            required: true,
            minlength:1
        },
        tel:{
            required: true,
            minlength: 1
        }
    },
    messages: {
        name: {
            required: "поле не заполнено"
            // minlength: "минимум 3 буквы"
        },
        tel: {
            required: "поле не заполнено"
            // minlength: "минимум 7 цифр"
        }       
    },
    submitHandler: function(){
            send_form(".top_form");
        }
});
 
$(".bot_form").validate({
    rules: {
        name:{
            required: true,
            minlength:1
        },
        tel:{
            required: true,
            minlength: 1
        }
    },
    messages: {
        name: {
            required: "поле не заполнено"
            // minlength: "минимум 3 буквы"
        },
        tel: {
            required: "поле не заполнено"
            // minlength: "минимум 7 цифр"
        }       
    },
    submitHandler: function(){
            send_form(".bot_form");
        }
});
 
 
$(".modal_form").validate({
    rules: {
        name:{
            required: true,
            minlength:1
        },
        tel:{
            required: true,
            minlength: 1
        }
    },
    messages: {
        name: {
            required: "поле не заполнено"
            // minlength: "минимум 3 буквы"
        },
        tel: {
            required: "поле не заполнено"
            // minlength: "минимум 7 цифр"
        }       
    },
    submitHandler: function(){
            send_form(".modal_form");
        }
});
 
 
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2019, 13:10
Ответы с готовыми решениями:

Скрипт для отправки писем с вложением
Здравствуйте.Нужна помощь в доработке скрипта для отправки писем с вложениями. Только начал изучать PHP, нету опыта что-бы самому...

Форма PHP для отправки писем. Отредактировать скрипт
Добрый день! Есть готовая форма сделанная на конструкторе форм на сайте http://www.csstemplateheaven.com/tools/form_builder/ ...

Один скрипт для всех сцен
Всем привет! Такой вопрос: у нас есть скрипт движения вражеской единицы, и в разных сценах ее движение немного отличается. Вопрос вот в...

15
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
16.07.2019, 20:00
попробуйте так
JavaScript
1
2
3
submitHandler: function(form) {
    send_form($(form));
  }
0
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
16.07.2019, 20:41  [ТС]
Так щлется только самая первая форма, которую скрипт находит по щелчку на любом из 3х submit'ов

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$(".application_form").validate({
    rules: {
        name:{
            required: true,
            minlength:1
        },
        tel:{
            required: true,
            minlength: 1
        }
    },
    messages: {
        name: {
            required: "поле не заполнено"
        },
        tel: {
            required: "поле не заполнено"
        }       
    },
    submitHandler: function(){
            // send_form(".top_form");
            send_form($('.application_form'));
        }
});
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
16.07.2019, 20:53
Цитата Сообщение от Mailo Посмотреть сообщение
submitHandler: function(){
* * * * * * // send_form(".top_form");
* * * * * * send_form($('.application_form'));
* * * * }
нет не так, а точно как я написал
Цитата Сообщение от fanatikus Посмотреть сообщение
submitHandler: function(form) {
сюда, по теории, передается объект текущей формы
0
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
16.07.2019, 22:46  [ТС]
Ну так я во-первых попробовал, думал другое имеется ввиду, в случае с
Цитата Сообщение от fanatikus Посмотреть сообщение
send_form($(form));
выдаёт ошибку
Миниатюры
Jq validation один скрипт отправки для всех писем по классу  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
17.07.2019, 12:57
Цитата Сообщение от fanatikus Посмотреть сообщение
submitHandler: function(form) {
* * send_form($(form));
* }
вы так прописали?
0
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
17.07.2019, 16:30  [ТС]
да, только без звездочек.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
17.07.2019, 16:55
что-то вы не так делаете
вот так, все работает
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<script>
    $(function () {
        $(".top_form").validate({
            rules: {
                name: {
                    required: true,
                    minlength: 1
                },
                tel: {
                    required: true,
                    minlength: 1
                }
            },
            messages: {
                name: {
                    required: "поле не заполнено"
                            // minlength: "минимум 3 буквы"
                },
                tel: {
                    required: "поле не заполнено"
                            // minlength: "минимум 7 цифр"
                }
            },
            submitHandler: function (form) {
                send_form($(form));
            }
        });
 
        $(".bot_form").validate({
            rules: {
                name: {
                    required: true,
                    minlength: 1
                },
                tel: {
                    required: true,
                    minlength: 1
                }
            },
            messages: {
                name: {
                    required: "поле не заполнено"
                            // minlength: "минимум 3 буквы"
                },
                tel: {
                    required: "поле не заполнено"
                            // minlength: "минимум 7 цифр"
                }
            },
            submitHandler: function (form) {
                send_form($(form));
            }
        });
    });
 
    function send_form(obj) {
        var form_name = $(obj).attr('name');
        console.log(form_name);
        console.log($(obj).serialize());
//            var msg = $(obj).serialize() + '&form_name=' + form_name;
//            $.ajax({
//                type: "POST",
//                url: "send_form.php",
//                data: msg,
//                success: function (data) {
//                    alert("Сообщение успешно отправлено. Мы свяжемся с вами в ближайшее время!");
//                },
//                error: function (xhr, str) {
//                    alert("Возникла ошибка!");
//                }
//            });
    }
</script>
аякс, я закометрировал чтобы не мешал проверить
Миниатюры
Jq validation один скрипт отправки для всех писем по классу  
0
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
18.07.2019, 02:30  [ТС]
Вот архив с проектом, всё в точности по вашему рецепту, всё та же ошибка получается у меня, не знаю, возможно проблема в какой то неправильной очередности подгрузки скриптов.
Вложения
Тип файла: rar 1.rar (2.21 Мб, 1 просмотров)
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
18.07.2019, 05:15
Цитата Сообщение от Mailo Посмотреть сообщение
да, только без звездочек.
Нет. В файле из архива у вас написано так
JavaScript
1
2
3
submitHandler: function(){
    send_form($(form));
}
а нужно было так
JavaScript
1
2
3
submitHandler: function(form){
    send_form($(form));
}
видите отличие?

Отсюда и ошибка form is not defined
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
18.07.2019, 11:03
а все потому, что копируют не думая
ясно же как белый день, если не передать в функцию form, далее будет not defined
1
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
18.07.2019, 11:57  [ТС]
Что то я про эту строку вообще забыл... прошу прощения.
Так в общем работает, но как и во втором сообщении отправляются данные только из первой по списку формы при нажатии на любой из трёх сабмитов. Да и там общий класс у них application_form а top_form это только самая верхняя.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(document).ready(function() { 
 
//form validation
$(".application_form").validate({
    rules: {
        name:{
            required: true,
            minlength:1
        },
        tel:{
            required: true,
            minlength: 1
        }
    },
    messages: {
        name: {
            required: "поле не заполнено"
        },
        tel: {
            required: "поле не заполнено"
        }       
    },
    submitHandler: function(form){
            send_form($(form));
        }
});
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
18.07.2019, 12:57
Лучший ответ Сообщение было отмечено Mailo как решение

Решение

а документацию плагина, слабо почитать?
Validating multiple forms on one page
The plugin can handle only one form per call. In case you have multiple forms on a single page which you want to validate, you have to initialise them all individually:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$(".application_form").each(function () {
    $(this).validate({
        rules: {
            name: {
                required: true,
                minlength: 1
            },
            tel: {
                required: true,
                minlength: 1
            }
        },
        messages: {
            name: {
                required: "поле не заполнено"
                        // minlength: "минимум 3 буквы"
            },
            tel: {
                required: "поле не заполнено"
                        // minlength: "минимум 7 цифр"
            }
        },
        submitHandler: function (form) {
            send_form($(form));
        }
    });
});
2
 Аватар для Mailo
248 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,312
18.07.2019, 13:46  [ТС]
Да не читаю, грешен, как и вы, судя по тому, что этот ответ не прозвучал первым в топике. В любом случае спасибо за пояснения, жаль что решить данную задачу в рамках настроек плагина невозможно, ну а переписывать код плагина пока рано, мне по крайней мере
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
18.07.2019, 13:56
Цитата Сообщение от Mailo Посмотреть сообщение
Да не читаю, грешен, как и вы, судя по тому, что этот ответ не прозвучал первым в топике.
а с какого перепугу я должен был читать документацию, если я не использую данный плагин?
сейчас, когда нужно было решить конкретный вопрос по плагину, я и сверился с документацией.

Добавлено через 4 минуты
Цитата Сообщение от Mailo Посмотреть сообщение
жаль что решить данную задачу в рамках настроек плагина невозможно
что не возможно?
если у вам одинаковые проверки для всех форм, что так и есть, если верить вашим первым постам, то мой последний пример прекрасно работает.
1
18.07.2019, 18:02

Не по теме:

Цитата Сообщение от Mailo Посмотреть сообщение
Да не читаю, грешен
Лень родилась первее вас

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2019, 18:02
Помогаю со студенческими работами здесь

Триггер для отправки писем
Добрый день. Изучаю SQL. Работаю на MS SQL 2008. Такой вопрос: Хочу написать тригер который обрабатывал бы вызывался каждый день(к...

Программа для отправки писем
Нужна программа для массовой отправки электронных писем! Кто может дайте ссылку для скачивания!

Почтовый сервис для отправки писем
С каким сервисом работает SmtpClient класс, и как сервис настроить под этот класс (аутентификация и так д.)? или может есть еще какие то...

Почта для массовой отправки писем
Добрый день! Подскажите, какую почту выбрать для массовой отправки писем. Программу использую iMacMailer, с ней проблем нет, но почта у...

Сделать форму для отправки писем на mail
В чем может быть проблема? Хостинг: http://lesson.16mb.com/2/ Исходник во вложении. send_form.php $fio= $_POST; $phone=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru