【发布时间】:2014-03-15 18:51:49
【问题描述】:
我有一个表格,要求提供“客人”对象的基本信息,基本上是:姓名、电话、电子邮件。我还有一个允许用户“添加更多客人”的按钮,它基本上复制了使用 jQuery 的原始表单。当用户单击提交按钮时,我希望将他们在页面中添加的所有客人提交给控制器进行创建。我正在努力找出最合适的方式来处理这样的提交。
1 - 我应该以不同的形式提交多个(相同类型的)对象吗?实际上,我现在使用一个表单提交工作,并确保每个访客属性字段名称都是唯一的(first_name_1、first_name_2 等)。虽然这有效,但感觉非常“hacky”。我觉得将每位客人分成自己的形式更干净。将所有内容都放在一个表单中要求我跟踪每位客人可以提交多少个属性,如果由于某种原因他们没有按预期的属性数提交,我就会出错。
2 - 我应该使用 jQuery + ajax 来提交吗?我对 JSON 了解不多,但是用它来做这个有意义吗?
我基本上是在为这种情况寻找最佳实践。我想如果我知道最合适的处理方式,我可能会在某处找到语法。
应用程序后端是 rails。如果需要,我可以提供更多信息。
谢谢!
标记见下文:
<div id=guests>
<div id="guest1" class="guest">
<form name="contact" class="form-horizontal bs-form" action=" " class="contact">
<fieldset>
<input required type="text" class="input-medium required" name="first_name_1" id="first_name_1" placeholder="First Name*" autocorrect="off" autocapitalization="on">
<input required type="text" class="input-medium required" name="last_name_1" id="last_name_1" placeholder="Last Name*" autocorrect="off" autocapitalization="on">
<input type="text" class="input-medium" name="phone_number" id="phone_number_1" placeholder="Phone Number" autocorrect="off">
<input type="text" class="input-medium" name="email" id="email_1" placeholder="Email" autocorrect="off">
<select class="host" name="host_1" id="host_1">
<option value="false" selected>Not table host</option>
<option value="true">Table host</option>
</select>
</fieldset>
</form>
</div>
</div>
<a href="#" class="add btn btn-info">Add Another Guest</a>
<div class="form-actions">
<button type="submit" class="btn btn-primary btn-previous" id="addguestsubmit">Submit</button>
</div>
这里的a fiddle 显示了标记和 jquery 执行表单创建/删除。正如我在下面的 cmets 中提到的,我不是在处理嵌套属性,而是在处理相同模型的具有相同字段的未知数量的表单。
我很想知道我的实现是否也关闭了。我确信其他人已经做到了这一点,但可能以不同的方式?
【问题讨论】:
标签: jquery ruby-on-rails ajax json