如何在express.js中张贴表单数据后阻止重定向?

时间:2014-03-30 19:33:22

标签: javascript jquery ajax node.js express

我在其他帖子中看到如何通过在提交覆盖方法中返回false来阻止AJAX调用的重定向,但这并不适用于express。在提交数据后,我无法弄清楚如何呈现重定向。以下代码正确执行,但重定向到init。

app.js

 app.post('/init', routes.init(db));

路由/ index.js

exports.init = function(db){
  return function(req, res) {
    var name = req.body.name;
    var track = req.body.track;

    var collection = db.get('configs');

    collection.insert({
      "name": name,
      "track": track
    }, function (err, doc) {
      if (err) {
        res.send("Error occurred adding config to db");
      }
      else {
        res.send(200);
      }
    });
  };
};

admin.jade

  script(type='text/javascript').
      $(document).ready(function() {
        $('#formInit').submit(function() {
          $.post('/init', 
            { name : $(this).name.value,
              track : $(this).track.value 
            }   
          );  
          return false;
        }); 
     });

    ....

    block content
      #control-panel

        form#formInit(name='init', action="/init", method="post")
          input#inputEventName(type="text", name="name", placeholder="name")
          input#inputHashtag(type="text", name="track", placeholder="track")
          button#buttonSubmit(type="submit") submit

1 个答案:

答案 0 :(得分:1)

$('formInit').on('submit', function(e) {
 e.preventDefault();

删除返回false;您也没有在选择器中指定类或ID。更改了事件绑定以使用.on方法。

希望这有帮助。