Why render doesn't work

I use render in a view page like this:

<% form_for :project do |form| %>
<table>
     <tr>
  <td>
  <%=
  select_tag:project_selection,options_for_select(@project_names)
  %>
  <%=
  observe_field :project_selection,
    :frequency => 0.5,
    :update => 'project_version_ajax',
    :url => {:action => 'update_project_selection'} %>
  </td>
    </tr>
    <div id='project_version_ajax'>
  <%= render :partial=>'project_version' %>
    </div>
</table>

<% end %>

In update_project_selection controller:

def update_project_selection
  ...
  render :partial=>'project_version'
end

when the select box changed its value, the controller is invoked but the
_project_version.html.erb doesn't update.

I use render in a view page like this:

<% form_for :project do |form| %>
<table>
    <tr>
<td>
<%=
select_tag:project_selection,options_for_select(@project_names)
%>
<%=
observe_field :project_selection,
   :frequency => 0.5,
   :update => 'project_version_ajax',
   :url => {:action => 'update_project_selection'} %>
</td>
   </tr>
   <div id='project_version_ajax'>
<%= render :partial=>'project_version' %>
   </div>
</table>

I don't believe it's legal HTML to have a div there.

Fred

Frederick Cheung wrote:

I don't believe it's legal HTML to have a div there.

Fred

Why? Could you tell me what wrong with my code?

Frederick Cheung wrote:

I don't believe it's legal HTML to have a div there.

Fred

Why? Could you tell me what wrong with my code?

That's just the way it is, divs aren't allowed there (just as you
can't do <span><div></div></span> either). Try putting your html
through the w3c validator

Fred

Frederick Cheung wrote:

That's just the way it is, divs aren't allowed there (just as you
can't do <span><div></div></span> either). Try putting your html
through the w3c validator

Fred

A render must be in an element. If I can't use div in this case, how can
I render it?

Quoting Zhao Yi <rails-mailing-list@andreas-s.net>:

Frederick Cheung wrote:
> That's just the way it is, divs aren't allowed there (just as you
> can't do <span><div></div></span> either). Try putting your html
> through the w3c validator
>
> Fred
A render must be in an element. If I can't use div in this case, how can
I render it?

Your element (the <div>...</div>) isn't in a valid place. You have it between
a row and the end of the table. Is it supposed to straddle the table
boundary? Either move it into the <td>...</td> or outside the table as
appropriate. Or put it in a table row of its own.

Jeffrey