【发布时间】:2016-09-30 00:53:20
【问题描述】:
我正在尝试使用不带 AJAX 的常规表单提交对象数组,但我发现请求正文并没有被解析为对象数组,而是包含许多与对象名称相对应的字段。
我知道当提交一个基元数组时,你只需用相同的名称填充许多输入,它就会被填充;但是,我似乎无法将其应用于复杂的对象。
我的表单代码相当简单:
<div class="col-sm-9">
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[0].name" class="control-label">Name</label>
<input name="attachment[0].name" class="form-control" value="First Name" type="text">
</div>
<div class="form-group">
<label for="attachment[0].uri" class="control-label">URI</label>
<input name="attachment[0].uri" class="form-control" value="First URI" type="text">
</div>
<div class="form-group">
<label for="attachment[0].description" class="control-label">Description</label>
<textarea rows="4" value="First Description" name="attachment[0].description" class="form-control">First Description</textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form">
<div class="form-group">
<label for="attachment[1].name" class="control-label" >Name</label>
<input name="attachment[1].name" class="form-control" value="Second Name" type="text">
</div>
<div class="form-group">
<label for="attachment[1].uri" class="control-label">URI</label>
<input name="attachment[1].uri" class="form-control" value="Second URI" type="text">
</div>
<div class="form-group">
<label for="attachment[1].description" class="control-label">Description</label>
<textarea rows="4" name="attachment[1].description" class="form-control">Second Description</textarea>
</div>
</div>
</div>
</div>
我制作了一个示例存储库来展示我的问题; https://github.com/xueye/express-form-issue 您可以在其中运行 node server.js,导航到 http://localhost:3000 并提交条目;请求正文将显示在您的控制台中,它应该显示为:
{ name: '',
type: '',
'attachment[0].name': 'First Name',
'attachment[0].uri': 'First URI',
'attachment[0].description': 'First Description',
'attachment[1].name': 'Second Name',
'attachment[1].uri': 'Second URI',
'attachment[1].description': 'Second Description' }
是否可以按照我尝试的方式发布数据?
【问题讨论】: