This is driving me nuts:-)
I’ve brought it down to a simplified case where I’m rendering this rjs
template:
page.insert_html :top, ‘cat1’, “
Some list item”
According to FireBug, this is what I’m actually getting in the browser:
try {
new Insertion.Top(“cat1”, “
Some list item”);
} catch (e) { alert(‘RJS error:\n\n’ + e.toString()); alert(‘new
Insertion.Top(“cat1”, “
Some list item”);’); throw e }
This all looks right to me, though I’m no Javascript expert. The headers
have
Content-Type: text/javascript.
But what is actually being displayed instead of a new list item is
something like:
try { new Insertion.Top(“cat1”, "
o Some list item
"); } catch (e) { alert(‘RJS error:\n\n’ + e.toString()); alert(‘new
Insertion.Top(“cat1”, "
o Some list item
");’); throw e }
(…where the o’s represent the little list-item dots – the two
instances of “Some list item” are actually being displayed as list
items).
Can anybody throw a clue to a clueless man?
Thanks in advance!
–Al Evans
If you are using :update => ‘someid’ in your link_to_remote this will
happen.
See if that’s the cause.
View this message in context:
http://www.nabble.com/RJS----What-am-I-missing--tf1858282.html#a5075103
Sent from the RubyOnRails Users forum at Nabble.com.
I recently ran into this, though it’s an easy fix. Whatever the remote
call is (link_to_remote, form_remote_tag, etc) have a first parameter of
which DOM element to update. The RJS returns the javascript string, so
the Ajax call promplty updates that element with the new text. However,
RJS want’s to update elements itself.
So just give the remote link a blank string where it asks for an element
to update, e.g.: link_to_remote ‘’, url_stuff
Jason
Al Evans wrote:
This is driving me nuts:-)
I’ve brought it down to a simplified case where I’m rendering this rjs
template:
page.insert_html :top, ‘cat1’, “
Some list item”
But what is actually being displayed instead of a new list item is
something like:
try { new Insertion.Top(“cat1”, "
o Some list item
"); } catch (e) { alert(‘RJS error:\n\n’ + e.toString()); alert(‘new
Insertion.Top(“cat1”, "
o Some list item
");’); throw e }
–Al Evans
Remove the :update portion of your link_to_remote tag. :update says
“shove whatever the result is into the element with id=‘foo’”. You just
want the javascript to execute, so take out the :update and let it do
its thang.
Al Evans wrote:
new Insertion.Top(“cat1”, “
Some list item”);
try { new Insertion.Top(“cat1”, "
Can anybody throw a clue to a clueless man?
Thanks in advance!
–Al Evans
What does your controller look like for the involved actions? Are you
doing a remote call (what you should be doing) or are you just doing a
normal action call? It sounds like your rjs is correct but your
controller is not rendering what you want.
Matthew M.
blog.mattmargolis.net
Alex W. wrote:
Remove the :update portion of your link_to_remote tag. :update says
“shove whatever the result is into the element with id=‘foo’”. You just
want the javascript to execute, so take out the :update and let it do
its thang.
Thanks! That was the problem. I knew it had to be something simple.
Stupid newbie tricks… 
–Al Evans