将数组从jade传递给节点js的最佳方法是什么?

时间:2014-11-06 07:00:35

标签: node.js pug

我目前正在构建一个非常简单的cms。因此,您只需要一个文本框,其旁边有一个“更多”按钮,当您按下它时,它会插入一个新创建的文本框。

所以我希望能够从创建的每个文本框中获取所有这些值并将其发布到服务器

我试过查了一下却发现什么都没有!有人可以帮帮忙:)

到目前为止这是我的代码

app.js

router.post('/addname', function(req, res) {

// connect to the results collection
    var db = req.db;
    var collection = db.get('names');

    // Get form values. 
    var content = req.body.names;

    // Submit to the DB
    collection.insert({
        "content": content
    }, function (err, doc) {
        if (err) {
            // If it failed, return error
            res.send("There was a problem adding the information to the database.");
            console.log(err);
        }
        else {
            // And forward to success page
            res.redirect("/");
        }
    });

form(action='addname' method="post")
   div#mynames()
          button#addmore(style="margin-left:-220px;" onClick="addtextbox") Add more
          input#names(name='names' placeholder='@', type='text')

jquery的

function addTexbox(){

    $("#names").append('<br><input placeholder="@" type="text" style="border-radius: 15px; border: none;" />');
    // contains all name input element
    var allname = $("#names:input");
    console.log(allTags[0].value);
}

到目前为止,如果按下按钮,它可以生成新的文本框

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,它应该是input#names(name='names[0]' ...,它只是数组names的一个元素,它将作为req.body.names传递给服务器。

form(action='addname' method="post")
   div#mynames()
          button#addmore(style="margin-left:-220px;" onClick="addtextbox") Add more
          input#names(name='names[0]' placeholder='@', type='text')

然后,当您添加新输入时,只需使用递增的数组计数器添加它们

var inputCounter = 1;
function addTexbox(){    
    $("#names").append('<br><input name="names['+ inputCounter++ +']">');
}