如何将所选复选框的值发送到 app.get 路由

How to send values of selected checkboxes to a app.get route

本文关键字:app 路由 get 复选框      更新时间:2023-09-26

我有这个按钮:

<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="stackoverflow@gmail.com"/>

我需要将电子邮件发送到应用程序获取 ->/电子邮件/新/电子邮件

为此,我创建以下代码:

        $(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 来填充复选框的值抛出一个循环。

为什么要使用 pathParam ?为什么不使用查询参数?

这是一个简单的例子:

$(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);
});

文档 -> 快速请求查询