我在<form>
标签被立即关闭的页面上发生了一种奇怪的情况,只留下表单的内容并且无用。
这是基本的ERB:
<%= form_for(@review) do |f| %>
<%= render 'apply/review_form', :locals => {:f => f} %>
<%= f.text_field :notes %>
<% end %>
似乎很简单,对吧?我自己尝试了局部的; text_field
本身;使用form_tag
的不同版本,但没有任何作用。
HTML看起来像这样:
<div id="reviewContainer">
<form accept-charset="UTF-8" action="/reviews" class="new_review" id="new_review" method="post">
</form>
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="authenticity_token" type="hidden" value="dJSuLMfhBSVKAM3Buwe1NjtBedSLQl062/+oliGbBfE=">
</div>
<input id="review_notes" name="review[notes]" size="30" type="text">
<div class="clear"></div>
</div>
有什么想法吗?看起来很简单,我无法理解为什么它不起作用!
此表单不是页面上的唯一表单,它包含在JQuery Tools Scrollable中。
答案 0 :(得分:3)
我遇到了这个问题并弄明白了。对我来说,这是因为我在无效的地方渲染表格。具体来说,我有一些这样的内容:
<table>
<tr>
<td>
Stuff I might want to edit
</td>
<div style="display: none">
<%= form_for thing_i_might_want_to_edit %>
...
<% end %>
</div>
</tr>
</table>
将隐藏的div(及其中的表单)移动到标记中可以解决问题。
答案 1 :(得分:0)
您使用的是什么版本的Rails?直到2.3.2 form_for没有返回值
<% form_for(@review) do |f| %>
注意开头时缺少“=”!
答案 2 :(得分:0)
我的修复方法是在结束前包含提交按钮,并使按钮不显示。
<%= submit_tag('',style: 'width:0;height:0;display:none;') %>
<% end %>
这会将结束标记放在我需要的位置。