У меня есть рабочая форма бюллетеня (имя, адрес электронной почты) с использованием Node.js и jquery, единственная проблема заключается в том, что форма не очищается после отправки сообщения электронной почты с помощью кнопки «Зарегистрироваться».
Я попытался использовать пустую строку '' после нажатия кнопки мыши, а также метод формы .reset (). Оба эти подхода работают , однако он очищает адрес электронной почты и предотвращает его отправку в Mailchimp.Я проверил это с небольшим количеством адресов электронной почты, и ничего не проходит.Кроме того, мои терминальные сообщения показывают 'email_address:' в виде пустой строки.Я предполагаю, что я неправильно заказываю свой код?Любое направление / обратная связь приветствуется.Также, пожалуйста, дайте мне знать, если мне нужно добавить свой код Node.js.
HTML:
<form action="/" method="post" id="myForm">
<h2 class="text-center mt-5"> Sign-Up Newsletter</h2>
<p>Using Mailchimp API</p>
<div class="form-group">
<input type="name" class="form-control" id="name" aria-describedby="emailHelp" placeholder="Name" style="width: 400px;">
</div>
<div class="form-group">
<input type="email" class="form-control" id="email" placeholder="Email" style="width: 400px;">
</div>
<p id="demo"></p>
<button type="submit" class="btn btn-info" id="submit" onclick="myFunction()" style="color:#fff; margin-bottom: 70px; width: 190px;">Sign up</button>
</form>
JS
var $ = require('jquery');
$('form').submit(function(event) {
var userEmail = $('#email').val();
console.log(userEmail);
event.preventDefault();
$.ajax({
url: '/',
type: 'POST',
data: {
email: userEmail
},
success: function(response) {
console.log(response);
},
});
});
//Message after newsletter sign-up
function myFunction() {
document.getElementById("demo").innerHTML = "Thank You, for signing up! You are now on our mailing list!";
}
Node.js
const express = require('express');
const app = express();
const bodyParser = require("body-parser");
//middleware
app.use(express.static(__dirname + "/public"));
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
//connecting cloud i9 host
app.listen(process.env.PORT, process.env.IP, function() {
console.log("The Server Has Started!");
});
//route
app.post('/', function(req, res) {
addEmailToMailchimp(req.body.email);
res.end('SUCCESS!');
});
function addEmailToMailchimp(email) {
var request = require("request");
var options = {
method: 'POST',
url: 'XXXXXXXX',
headers: {
'postman-token': 'XXXXXX',
'cache-control': 'no-cache',
'content-type': 'application/json',
authorization: 'Basic XXXXX},
body: { email_address: email, status: 'subscribed' },
json: true
};
request(options, function(error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
}