@HelenChydilove

Почему срабатывает на 2-ой клик отправка почты nodemailer?

Все работает ,но срабатывает на 2 клик мыши! Ахтунг, как быть, помогите, пожалуйста!0 Всем добра!
Есть инпуты ,которые отправляют заявку на почту.
jade
div.sendData
          h4 Отправка заявки
          br
          input(placeholder="Имя", type="text", id="name")
          input(type="text", placeholder="Телефон", id="phone")
          input(type="email", placeholder="E-mail", id="email")
          input(type="submit", id="send", onclick="sendMail()", value="Отправить заявку" )
          span#message

Есть роутер mail.js :

var express = require('express');
var router = express.Router();
var mailer = require('nodemailer');

//send on enail info
var transport = mailer.createTransport({
    service: "Gmail",
    host: "smtp.gmail.com",
    auth:{
        user: "**",
        pass: "***"
    },
    tls: {
        rejectUnauthorized: false
    }
});

router.get('/', function(req, res) {
var mail = {
    from: 'Nodemailer <**> ',
    to: 'admin@gmail.com',
    subject: 'Заказ аквариума',
    text: "Имя клиента :"+req.query.name +"; Телефон:"+req.query.phone + ";Почта:"+req.query.email
};
transport.sendMail(mail,function(err,response){
    if (err){
        console.log(err);
    }else {
        res.end('send');
        console.log("Отправлено "+ response.message);
    }
})
});
module.exports = router;


Код на server.js :

//подключение роутера почты
var users = require('./routes/mail');
app.use('/send', mail);


И код на страничке, которая запускает функция sendMail(). Она получает введенные данные с инпутов и отправляет на адрес 'to'
function sendMail() {
        var name,email, phone;
        $("#send").click(function () {
            name = $("#name").val();
            email = $("#email").val();
            phone = $("#phone").val();
            $("#message").text("Пожалуйста, подождите ...");
            $.get("/send", {
                name: name,
                email: email,
                phone: phone
            }, function (data) {
                if (data == "send") {
                    $("#message").empty().html("Ваша завяка принята");
                }
            });
        });
    }
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Вы повесили на клик (в разметке) функцию sendMail
В функции sendMail вы ... повесили на клик отправку. Вы не выполняете отправку. Вы просто вешаете её на обработчик клик. Вот тут - $("#send").click( ...

понимаете?)

Рабочий код
function sendMail() {
        var name,email, phone;
            name = $("#name").val();
            email = $("#email").val();
            phone = $("#phone").val();
            $("#message").text("Пожалуйста, подождите ...");
            $.get("/send", {
                name: name,
                email: email,
                phone: phone
            }, function (data) {
                if (data == "send") {
                    $("#message").empty().html("Ваша завяка принята");
                }
            });
    }

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы