合并表单和字段集不起作用?

时间:2016-03-15 21:50:13

标签: javascript ajax node.js forms fieldset

我有<form>上传图片和<fieldset>使用AJAX发送一些数据,它们都运行正常但我的问题发生在我尝试以一种形式合并它们时。我使用的是Node.JS服务器。

上传<form>

<form method="post" enctype="multipart/form-data" action="upload">
 <input type="file" name="upl"/>
 <input type="submit" value="Send"/>
</form>

Node.JS路由器上传帖子:

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

    console.log(req.file);
    res.status(204).end();

});

<fieldset>

<div id="addAdv">
  <fieldset class="form-group">
    <label for="inputTimeStamp">Time</label>
    <input id="inputTimeStamp" type="text" class="form-control"/><br/>
    <label for="inputURL">URL</label>
    <input id="inputURL" type="url"/><br/>
    <button id="btnAddAdv" type="submit" class="btn btn-primary">Submit</button>
  </fieldset>
</div>

Node.Js路由器数据发布:

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

    Feed.collection.insert(req.body, function(err, result){
        res.send(
            (err === null) ? { msg: '' } : { msg: err }
        );
    });
});

AJAX:

$('#btnAddAdv').on('click', addAdv);

function addAdv(event) {
.....
$.ajax({
    type: 'POST',
    data: newUser,
    url: '/addadv',
    dataType: 'JSON'
}).done(function( response )...}

让我们尝试合并它们:

<div id="addAdv">
 <form method="post" enctype="multipart/form-data" action="upload">
  <fieldset class="form-group">
    <input type="file" name="upl"/>
    <label for="inputTimeStamp">Time</label>
    <input id="inputTimeStamp" type="text" class="form-control"/><br/>
    <label for="inputURL">URL</label>
    <input id="inputURL" type="url"/><br/>
    <input type="submit" id="btnAddAdv" value="Send"/>
  </fieldset>
 </form>
</div>

也尝试过:

<button id="btnAddAdv" type="submit">Send</button>

1 个答案:

答案 0 :(得分:0)

如果您通过提交按钮而非XHR提交合并表单,则需要为非文件字段添加name属性,否则浏览器不会将其发送到服务器