【问题标题】:Can't get to submit form. Binding not applied无法提交表单。未应用绑定
【发布时间】:2014-04-02 07:35:52
【问题描述】:

我对node.js 和jade 还很陌生。我正在尝试提交表单,但不知何故无法正确绑定。代码如下所示:

index.jade:

.opinion-form
      form(name="submitResponse",method="post",action="/submitResponse")
      .row
        .col-lg-12.col-md-12
          input(id="feedbackYes", type="radio", name="feedback",value=1)
          label(for="feedbackYes") Oh yeah!
      .row
        .col-lg-12.col-md-12
          input(id="feedbackNo", type="radio", name="feedback",value=0)
          label(for="feedbackNo") Nope, it's not for me.
      input.btn.btn-primary(type="submit", value="SUBMIT")
    .row
      .col-lg-12.col-md-12

app.js

app.post('/submitResponse', routes.submitResponse(dbClient));

index.js

exports.submitResponse = function(dbClient) {
return function(req, res) {
    var feedback = req.body.feedback;
    // save the value to database using the dbClient
    console.log(feedback);
    res.render('thankyou')
  }
}

这是怎么回事??

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    首先不直接调用routes.submitResponse(),而是让express自己调用。

    app.js

    app.post('submitResponse',routes.submitResponse);
    

    然后对于路由,您编写它的方式就像一个中间件,如果不想要一个中间件也尝试使用res.jsonres.sendres.render 结束请求。应该是这样的

    index.js

    exports.submitResponse=function(req,res,next){
     res.json(200,req.body); // end response
    }
    

    【讨论】:

    • 我已经编辑了问题以演示实际代码,但它仍然不起作用。请帮我解决它..
    【解决方案2】:

    实际上问题是按钮不在表单内,这就是为什么没有对其应用绑定的原因。 JADE 及其缩进.. :( . 现已修复..

    【讨论】:

      猜你喜欢
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2015-04-16
      • 2013-01-25
      相关资源
      最近更新 更多