javascript - 插入逗号时分割字符串并将其添加到字符串数组中

标签 javascript html express ejs

我有一个输入,当用户键入逗号时,它会将字符串转换为“样式标签”,然后,当提交表单时,字符串将被插入名为“内容”的数组中。

在 EJS View 上,我打印的结果如 <%= course.content %>但我得到的结果是 'string1,string2,string3,string4'我所追求的是,​​当被插入数组时,每个字符串必须是不同的元素:

content ['string1','string2','string3','string4']

只有这样,它才会通过循环数组在我的 View 中正确呈现。我想仅通过 javaScript 或 jQuery 来实现此目的。

更新:这就是我在 View 中渲染的方式

<ul>
   <% var i; for (i = 0; i < course.content.length; i++) { %>
     <li><i class="fas fa-check"></i> <%= course.content %></li>
   <% }; %>
</ul>

更新:这是我执行此 POST 请求的路线

router.post("/", middleware.isLoggedIn, function(req, res) {
  Course.create(req.body.course, function(err, course) {
     if (err) {
       req.flash("error", err.message);
       return res.redirect("back");
     }
       res.redirect("/courses/" + course.id);
  });
});

解决了!通过在服务器端使用 split,如下所示:

router.post("/", middleware.isLoggedIn, function(req, res) {
   Course.create(req.body.course, function(err, course) {
     if (err) {
       req.flash("error", err.message);
       return res.redirect("back");
     } else {
       var content = req.body.course.content.toString().split(",");
       course.content = content;
       course.save();
       console.log(course.content);
       res.redirect("/courses/" + course.id);
     }
   });
});

这是使用 @garry man 的 function beforesubmit() 的 JavaScript 中的另一个解决方案,请参见下文。

codepen

最佳答案

漫漫长路

否则,有一种解决方法是您输入尽可能多的标签,就应该生成尽可能多的输入元素。

例如我的输入标签是 foo,bar 然后将生成 2 个输入标签,如

                                                            Note square brackets below
<input id="hiddenInput" type="hidden" name="course[content][]" required>
<input id="hiddenInput" type="hidden" name="course[content][]" required>

路还很长。

另一种方式

如果您通过 AJAX 提交表单,那么您可以在提交之前操作数据,并使用 .split(',') 将字符串转换为数组。

另一种方式(服务器端)

在服务器端按 , 分割字符串。

关于javascript - 插入逗号时分割字符串并将其添加到字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55141532/

相关文章:

JavaScript 正则表达式错误

javascript - AngularJS 字符串在 HTML 中替换

php - 如何获取数据库中的数据并在View中显示具体数据(Codeigniter)

html - 不编写脚本选中多个复选框?

php - 将 php 变量作为隐藏输入传递,其中 html 包含在一个 echo 中

node.js - 如何在nodejs Express服务中的查询参数中发送整数

javascript - 下划线按表示节号的字符串排序

javascript - MongoDb 通过 Node.js native 驱动程序插入未插入

node.js - Sequelize 中不重音

javascript - angularjs 谷歌地图信息窗口