如何将选中复选框的值发送到 app.get 路由
How to send values of selected checkboxes to a app.get route
我有这个按钮:
<a type="button" class="sendEmail" href="/email/new/">Enviar Email</a>
我有多个复选框,值中包含电子邮件:
<input type="checkbox" class="checkbox" value="myemail@gmail.com"/>
<input type="checkbox" class="checkbox" value="other@gmail.com"/>
<input type="checkbox" class="checkbox" value="your@gmail.com"/>
<input type="checkbox" class="checkbox" value="something@gmail.com"/>
<input type="checkbox" class="checkbox" value="nothing@gmail.com"/>
<input type="checkbox" class="checkbox" value="Whosebug@gmail.com"/>
我需要将电子邮件发送到应用程序获取 -> /email/new/EMAILS
为此,我创建了以下代码:
$(document).ready(function () {
$(".sendEmail").click(function() {
var emails = [];
var checkboxes = document.getElementsByClassName("checkbox");
for (var i = checkboxes.length -1 ; i>= 0; i--) {
if (checkboxes[i].type === "checkbox" && checkboxes[i].checked) {
emails.push(checkboxes[i].value);
}
}
var link = "/email/new/" + emails;
$(this).attr("href", link);
});
});
正在运行,但是..这是正确的解决方案吗?有什么可以帮助我的吗?
为了帮助大家理解一切,这是我的路线:
app.get('/email/new/:param, function(req, res) {
var emails = req.param("param");
res.send(emails);
});
OBS:我正在使用 EJS 填充复选框的值引发循环。
为什么要使用路径参数?为什么不使用 queryParam ?
这是一个简单的例子:
$(document).ready(function () {
$(".sendEmail").click(function() {
var emails = [];
var checkboxes = document.getElementsByClassName("checkbox");
for (var i = checkboxes.length -1 ; i>= 0; i--) {
if (checkboxes[i].type === "checkbox" && checkboxes[i].checked) {
emails.push(checkboxes[i].value);
}
}
var link = "/email/new?";
for(var i = 0; i <= emails.length; i++){
link += "emails=" + emails[i] + "&";
}
$(this).attr("href", link);
});
});
和
app.get('/email/new', function(req, res) {
var emails = req.query.emails;
res.send(emails);
});
文档 -> Express request query
我有这个按钮:
<a type="button" class="sendEmail" href="/email/new/">Enviar Email</a>
我有多个复选框,值中包含电子邮件:
<input type="checkbox" class="checkbox" value="myemail@gmail.com"/>
<input type="checkbox" class="checkbox" value="other@gmail.com"/>
<input type="checkbox" class="checkbox" value="your@gmail.com"/>
<input type="checkbox" class="checkbox" value="something@gmail.com"/>
<input type="checkbox" class="checkbox" value="nothing@gmail.com"/>
<input type="checkbox" class="checkbox" value="Whosebug@gmail.com"/>
我需要将电子邮件发送到应用程序获取 -> /email/new/EMAILS
为此,我创建了以下代码:
$(document).ready(function () {
$(".sendEmail").click(function() {
var emails = [];
var checkboxes = document.getElementsByClassName("checkbox");
for (var i = checkboxes.length -1 ; i>= 0; i--) {
if (checkboxes[i].type === "checkbox" && checkboxes[i].checked) {
emails.push(checkboxes[i].value);
}
}
var link = "/email/new/" + emails;
$(this).attr("href", link);
});
});
正在运行,但是..这是正确的解决方案吗?有什么可以帮助我的吗?
为了帮助大家理解一切,这是我的路线:
app.get('/email/new/:param, function(req, res) {
var emails = req.param("param");
res.send(emails);
});
OBS:我正在使用 EJS 填充复选框的值引发循环。
为什么要使用路径参数?为什么不使用 queryParam ?
这是一个简单的例子:
$(document).ready(function () {
$(".sendEmail").click(function() {
var emails = [];
var checkboxes = document.getElementsByClassName("checkbox");
for (var i = checkboxes.length -1 ; i>= 0; i--) {
if (checkboxes[i].type === "checkbox" && checkboxes[i].checked) {
emails.push(checkboxes[i].value);
}
}
var link = "/email/new?";
for(var i = 0; i <= emails.length; i++){
link += "emails=" + emails[i] + "&";
}
$(this).attr("href", link);
});
});
和
app.get('/email/new', function(req, res) {
var emails = req.query.emails;
res.send(emails);
});
文档 -> Express request query