# RJS renders ... sometimes

**URL:** <https://www.ruby-forum.com/t/rjs-renders-sometimes/88804>\
**Category:** Rails\
**Created:** [March 14, 2007, 3:53pm UTC](https://www.ruby-forum.com/t/rjs-renders-sometimes/88804 "2007-03-14T15:53:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![wesgarrison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f1d935/32.png) [@wesgarrison](https://www.ruby-forum.com/u/wesgarrison)\
**Post date:** [March 14, 2007, 3:53pm UTC](https://www.ruby-forum.com/t/rjs-renders-sometimes/88804/1 "2007-03-14T15:53:08Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wesgarrison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f1d935/32.png) [@wesgarrison](https://www.ruby-forum.com/u/wesgarrison)\
**Post date:** [March 14, 2007, 4:20pm UTC](https://www.ruby-forum.com/t/rjs-renders-sometimes/88804/2 "2007-03-14T16:20:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wesgarrison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f1d935/32.png) [@wesgarrison](https://www.ruby-forum.com/u/wesgarrison)\
**Post date:** [March 14, 2007, 4:51pm UTC](https://www.ruby-forum.com/t/rjs-renders-sometimes/88804/3 "2007-03-14T16:51:16Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wesgarrison](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f1d935/32.png) [@wesgarrison](https://www.ruby-forum.com/u/wesgarrison)\
**Post date:** [March 14, 2007, 10:47pm UTC](https://www.ruby-forum.com/t/rjs-renders-sometimes/88804/4 "2007-03-14T22:47:27Z")

</div>

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](http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/68f64e3baaf43df3)
