form_remote_tag :onsubmit not working.

Hi,

Has anyone successfully implemented the :onsubmit option for
form_remote_tag. It doesn't seem to work for me. Is there any specific
version of rails which is required for the same.

Here's my piece of code.

<script>
function set_tojid(){
    alert('onsubmit');
    }
</script>
<%= form_remote_tag :update => '', :url => { :action => ''}, :onsubmit
=> "set_tojid()", :after => "clearinput()" %>
<%= text_field_tag :newmessage, nil, {:style => "width:
100%", :maxlength => "1000",:autocomplete => "off"} %>
<%= hidden_field_tag :send_to, value = '' %>
<%= end_form_tag %>

Anything buggy here??

TIA
~Shishir

Lots.

1. You can't use :onsubmit, because form_remote_tag generates an
onsubmit attribute. You should use :before instead, which will place
your code in the onsubmit event before the Ajax call.

2. Why are you using :update without an id? If your view is doing RJS,
you should leave :update off, which generates Ajax.Request instead of
Ajax.Updater.

3. Using the non-block form is deprecated.

Try this:

  <% form_remote_tag :url => { :action => ''},
    :before => "set_tojid()", :after => "clearinput()" do %>

    ...blah blah

  <% end %>

Thanks a lot Bob for cleaning the code. I was actually wary of
using :before as a substitute of :onsubmit. Anyways, I need one more
help. I am actually trying to update the value of one of my hidden
parameters in the form, before submitting like this. Again it seems
i've hit a road block.

<script>
function set_tojid(){
    document.getElementById('send_to').value='newvalue'
    }
</script>

<%= form_remote_tag :name => 'minput', :url => { :action =>
''}, :before => "set_tojid()", :after => "clearinput()" %>
<%= text_field_tag :newmessage, nil, {:style => "width:
100%", :maxlength => "1000",:autocomplete => "off"} %>
<%= hidden_field_tag :send_to, value = 'oldvalue' %>
<%= end %>

I have checked the parameters in the post , and the :send_to parameter
still hold the oldvalue.

:frowning:

~Shishir

Thanks a lot Bob for cleaning the code. I was actually wary of
using :before as a substitute of :onsubmit. Anyways, I need one more
help. I am actually trying to update the value of one of my hidden
parameters in the form, before submitting like this. Again it seems
i've hit a road block.

I'd recommend using firebug's javascript debugger to step through
this and see exactly what's happening

Fred

Thanks Fred, I almost forgot that feature of firebug !!