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

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

15.07.2019, 13:10. Показов 1666. Ответов 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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
178 / 226 / 31
Регистрация: 18.02.2010
Сообщений: 2,313
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
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru