page.insert_html does not insert html with link_to_function

Hi there,

The partial is like this:

<p></p> <div id="group" class="elements">   <p></p>   <%= link_to_function 'Add text field' do |page|   page.insert_html :bottom, :group, :partial => 'text'   end%>   <g_title>Text Group #1</g_title>   <%= render :partial => 'text' %> </div>

And the code of the insertion is like this:

<%= link_to_function 'Add group' do |page| page.insert_html :bottom, :groups, :partial => 'group' end %>

This way, it does not insert the partial. But, if I remove the "link_to_function", it does insert it!

Any idea of this? :frowning:

Quoting Victor Martin <rails-mailing-list@andreas-s.net>:

Hi there,

The partial is like this:

<p></p> <div id="group" class="elements">   <p></p>   <%= link_to_function 'Add text field' do |page|   page.insert_html :bottom, :group, :partial => 'text'   end%>   <g_title>Text Group #1</g_title>   <%= render :partial => 'text' %> </div>

And the code of the insertion is like this:

<%= link_to_function 'Add group' do |page| page.insert_html :bottom, :groups, :partial => 'group' end %>

RTFM. The proper syntax is

<%= link_to_function('Add text field', nil) do |page|    page.insert_html :bottom, :group, :partial => 'text'   end %>

Jeffrey L. Taylor wrote:

RTFM. The proper syntax is

<%= link_to_function('Add text field', nil) do |page|    page.insert_html :bottom, :group, :partial => 'text'   end %>

Hi Jeffrey,

that is not the problem (I tried it, anyway); in fact, that link_to_function ('Add text field') works perfect. The ones that is not working is 'Add group'. It works just if I remove the 'Add text field' link_to_function from the partial :confused:

Thanks anyway

Nobody knows? I'm still stuck in this thing :frowning:

Have you tried using firebug to work out what is going on ?(eg is the partial that is inserted mangled in some way ?) Do also check that all the dom elements you think should exist are actually there and that dom IDs are unique.

Fred

Frederick Cheung wrote:

Frederick Cheung wrote: > Hi Fred,

I've got this error from firebug when I click on the "Add new group" link:

"missing } after property list"

But I don't know what to do; I'm pretty newbie with this. It seems right to me, it is just the same as the other link_to_function.

That sounds like somehow some invalid javascript is getting generated.

Fred

Quoting Victor Martin <rails-mailing-list@andreas-s.net>:

Hi there,

The partial is like this:

<p></p> <div id="group" class="elements">   <p></p>   <%= link_to_function 'Add text field' do |page|   page.insert_html :bottom, :group, :partial => 'text'   end%>   <g_title>Text Group #1</g_title>   <%= render :partial => 'text' %> </div>

And the code of the insertion is like this:

<%= link_to_function 'Add group' do |page| page.insert_html :bottom, :groups, :partial => 'group' end %>

This way, it does not insert the partial. But, if I remove the "link_to_function", it does insert it!

I am confused. Is the 'group' partial the first bit of code? And the second piece of code calls it? And what is the contents of the text partial?

Jeffrey

Jeffrey L. Taylor wrote:

Quoting Victor Martin <rails-mailing-list@andreas-s.net>:

  end%> This way, it does not insert the partial. But, if I remove the "link_to_function", it does insert it!

I am confused. Is the 'group' partial the first bit of code? And the second piece of code calls it? And what is the contents of the text partial?

Jeffrey

_text is like this:

<% options = {'Normal text' => 'normal', 'Highlighted text' => 'highlighted', 'Notes' => 'notes'} %> <div class='text'>   <p>     Text <%= text_field_tag :Title, nil, :size => '50' %> Importance <%= select_tag 't1', options_for_select(options)%>     <remove><%= link_to_function 'Remove text field', "this.up('.text').remove()" %></remove>   </p> </div>

This is (or I try it to be) a complex forms whose text fields are in groups, and you can add and remove both text fields and groups. The only thing that is not working is the "Add group" link_to_function.

Quoting Victor Martin <rails-mailing-list@andreas-s.net>:

Jeffrey L. Taylor wrote: > Quoting Victor Martin <rails-mailing-list@andreas-s.net>: >> end%> >> This way, it does not insert the partial. But, if I remove the >> "link_to_function", it does insert it! > > I am confused. Is the 'group' partial the first bit of code? And the > second > piece of code calls it? And what is the contents of the text partial? > > Jeffrey

_text is like this:

<% options = {'Normal text' => 'normal', 'Highlighted text' => 'highlighted', 'Notes' => 'notes'} %> <div class='text'>   <p>     Text <%= text_field_tag :Title, nil, :size => '50' %> Importance <%= select_tag 't1', options_for_select(options)%>     <remove><%= link_to_function 'Remove text field', "this.up('.text').remove()" %></remove>   </p> </div>

This is (or I try it to be) a complex forms whose text fields are in groups, and you can add and remove both text fields and groups. The only thing that is not working is the "Add group" link_to_function.

Interesting. It works for me. If it were my code, I'd double check what is actually there versus what you've typed into the e-mails AND look at the code immediately BEFORE the code you've typed or pasted into the e-mails. Look for extra or missing quotes and braces (AKA squiggly brackets). If you have an editor that does syntax highlighting/coloring, use it and be sure it agrees with you on the syntax of your code.

HTH,   Jeffrey

<div id="new_campaign" <%render :partial =>'new_campaign_partial'%> </div>

<%= link_to_function "Add a campaign" do |page|     inser_html :bottom, :new_campaign, :partial=>'new_campaign_partial'    end%>

the partial is named new_campaign_partial.rhtml. It has just the html code for creating certain text fiels and calendar

<div id="new_campaign" <%render :partial =>'new_campaign_partial'%> </div>

<%= link_to_function "Add a campaign" do |page|     inser_html :bottom, :new_campaign, :partial=>'new_campaign_partial'    end%>

If I remember correctly, link_to_function does not accept a block