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 !!