开发者

form_for closes <form> tag

开发者 https://www.devze.com 2023-03-08 04:19 出处:网络
I have a strange situation happening on a page where my <form> tags are being closed immediately, leaving the form\'s contents on their own and not useful.

I have a strange situation happening on a page where my <form> tags are being closed immediately, leaving the form's contents on their own and not useful.

Here's the basic ERB:

<%= form_for(@review) do |f| %>
   <%= render 'apply/review_form', :locals => {:f => f} %>
   <%= f.text_field :notes %>
<% end %>

Seems simple, right? I have tried the partial on its own; the text_field on its own; a different version using form_tag, but nothing works.

The HTML looks like this:

<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>

Any ideas? It seems so simple I can't understand why it wouldn't be working!


Possibly helpful information

This form is not the only form on the p开发者_如何学JAVAage, and it is enclosed in a JQuery Tools Scrollable.


I had this problem and figured it out. For me, it was because I was rendering the form in an invalid place. Specifically, I had some content like this:

<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>

Moving the hidden div (and the form inside it) into the tag fixed the problem.


What version of Rails are you using? Coz till 2.3.2 form_for didn't return back a value

<% form_for(@review) do |f| %>

Note the "=" missing at the start!


My way to fix it is to include the submit button right before the end and make the button not display.

  <%= submit_tag('',style: 'width:0;height:0;display:none;') %>
<% end %>

This puts the ending tag right where I need it.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号