# Onchange="document.forms\[0\].submit()" - how to CANCEL

**URL:** <https://www.ruby-forum.com/t/onchange-document-forms-0-submit-how-to-cancel/73956>\
**Category:** Rails\
**Created:** [October 28, 2006, 12:41pm UTC](https://www.ruby-forum.com/t/onchange-document-forms-0-submit-how-to-cancel/73956 "2006-10-28T12:41:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![qertoip](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/7ab992/32.png) [@qertoip](https://www.ruby-forum.com/u/qertoip)\
**Post date:** [October 28, 2006, 12:41pm UTC](https://www.ruby-forum.com/t/onchange-document-forms-0-submit-how-to-cancel/73956/1 "2006-10-28T12:41:53Z")

</div>

Goal: I want to auto-send a form whenever any field changes. The page  
will be updated “via Ajax”, so standard submission is cancelled.

Idea: Add onchange=“document.forms[0].submit();” to every field

Problem: Can not cancel form submission. Browser redirects to “results”  
page, which is of course JavaScript meant to dynamically update the  
page.

RHTML snippet:  
\<%  
remote\_form\_for :estate, :url =\> { :action =\> :evaluate\_secondhand\_flat  
} do |form|  
%\>  
\<%=  
form.select :province, Constants.provinces\_constant, options = {},  
:onchange =\> “javascript: document.forms[0].submit(); /_RETURN FALSE  
DOES NOT WORK HERE_/”  
%\>

HTML snippet:

```
<select id="estate_province" name="estate[province]" 

```

onchange=“document.forms[0].submit();”\>

Please note, that onsubmit already ends with “return false;” but the  
cancellation works only with standard submition via submit button.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![qertoip](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/7ab992/32.png) [@qertoip](https://www.ruby-forum.com/u/qertoip)\
**Post date:** [October 29, 2006, 8:13pm UTC](https://www.ruby-forum.com/t/onchange-document-forms-0-submit-how-to-cancel/73956/2 "2006-10-29T20:13:39Z")

</div>

On 10/28/06, Qertoip [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Goal: I want to auto-send a form whenever any field changes. The page  
> will be updated “via Ajax”, so standard submission is cancelled.

## onchange=“this.form.onsubmit;”

Calle D. -\*- removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![qertoip](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/7ab992/32.png) [@qertoip](https://www.ruby-forum.com/u/qertoip)\
**Post date:** [November 7, 2006, 10:54am UTC](https://www.ruby-forum.com/t/onchange-document-forms-0-submit-how-to-cancel/73956/3 "2006-11-07T10:54:19Z")

</div>

On 28 October 2006 14:41, Qertoip wrote:

> Goal: I want to auto-send a form whenever any field changes. The page  
> will be updated “via Ajax”, so standard submission is cancelled.
> 
> Idea: Add onchange=“document.forms[0].submit();” to every field  
> I think, the better idea would be to use Rails’ “observe\_form” helper  
> method  
> which eliminates all the pain of adding onchange handlers to each  
> control.
