RJS renders ... sometimes

I’ve googled around for a solution for this, but no luck.

I have a simple form. It submits to a controller. The controller
action passes through to an .rjs template. The page is updated and
all is well.

I wanted to disable the button because people were double submitting,
so I used:
:disable_with => ‘Adding’

The button is disabled when I click on it.

However, my rjs now comes back as text and is rendered in the browser
instead of being rendered as page updates.
Content-Type: text/javascript; is correct, so the .rjs is being picked
up fine.

Any ideas on what to check next? I’m using Mongrel 1.0.1 with rails
1.2.3 (same error on 1.1.6, too).

It may be because I’m not very clever, but to get to the same result,
I’ve always coded something like this:

<%= submit_tag "submit" :onclick="$('submit').hide()" %>

It’s not nearly as terse as your code, but it gets the job done and
may solve your issue. When I was getting the results you described, it
was because I had forgotted to add the
javascript_include_tag :defaults to my layout.

good luck,
Bryce

Bryce:
Your solution works great! Thanks for the pointer.

For posterity, I actually used this:
<%= submit_tag “Add Comment”, :class => ‘submit’, :id =>
‘submit_button’, :onclick => “$(‘submit_button’).hide()” %>

The key thing being “id” and $(…) have to match.

– Wes

Glad that worked out for you. I had tried the :id => ‘something’
without a lot of success in the past. I guess I should give it another
go.

You don’t know anything about rake tasks do you?
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/68f64e3baaf43df3