如何在不刷新 node.js 和 ejs 的情况下提交表单

How to submit a form without refresh in node.js and ejs?

本文关键字:ejs 情况下 提交 表单 js 刷新 node      更新时间:2023-09-26
<form action="" method="post">
    <div class="bottom_wrapper clearfix">
    <div class="message_input_wrapper" id="eventForm">
    <input class="message_input" name="msg" placeholder="Type your message here..." />
        </div>
    <input type="submit" name="submit">
        <div>
</form>   
<script>
    $('#eventForm').submit(function (e) {
        e.preventDefault();
        var fd = new FormData($(this)[0]);
        $.ajax({
            url: '/messages/'<%= id %>,
            data: fd,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                console.log(data);
            }
        });
    });
</script>

我在前端和节点.js控制器中使用的上述代码

 BASE.APP.post('/messages/:id', function(req,res)
     {
      var body = req.body;
         console.log('postdata',body);
     });

在发布数据时,它给我空白。
实际上,这是一个聊天消息窗口,我想在不刷新页面的情况下发送消息。

表单没有 ID eventForm,这是一个 DIV,它没有提交事件。

将 ID 而不是 DIV 添加到表单中。
另外,你有一个错别字,其中一个结束</div>标签并没有真正关闭任何东西,而是打开。

<form action="" method="post" id="eventForm">
    <div class="bottom_wrapper clearfix">
        <div class="message_input_wrapper">
            <input class="message_input" name="msg" placeholder="Type your message here..." />
        </div>
        <input type="submit" name="submit">
    </div>
</form>   
<script type="text/javascript">
      $('#eventForm').submit(function (e) {
          e.preventDefault();
          var fd = new FormData(this);
          $.ajax({
               url: '/messages/'<%= id %>,
               data: fd,
               processData: false,
               contentType: false,
               type: 'POST',
               success: function(data){
                   console.log(data);
               }
          });
     });
</script >