form fields with ajax listener

Folks,

I have an app that collects customer info and asks the user to click a checkbox if he has a billing address that's different from his shipping info. There's an event listener that detects the checkbox click and renders a partial with the billing address info. Works great. Except that the billing address stuff is not being dumped into params and is therefore not being saved in the model.

I have another app with this same functionality that works perfectly... no idea what's gone wrong here. suggestions?

## main view

<%= form_tag(:action => 'save_customer') %> <%= javascript_include_tag 'prototype' %>

<h3>Please enter your details below</h3>

<div> <label for="name">Name</label><br/>   <%= text_field("customer", "name", "size" => 40 ) %><br /> </div>

<div>   <label for="email">Your e-mail address</label><br/> <%= text_field("customer", "email", "size" => 40 ) %> </div>

<label for="ship_address1">Your shipping address</label><br/> <%= text_field("customer", "ship_address1", "size" => 40 ) %> </div>

<div>   <label for="email">Address line 2</label><br/> <%= text_field("customer", "ship_address2", "size" => 40 ) %> </div>

<div>   <label for="bill_city">City</label><br/> <%= text_field("customer", "ship_city", "size" => 40 ) %> </div>

<div>   <label for="bill_state">State</label><br/> <%= options = [["Select a state", ""]] + Customer::STATE_NAMES select("customer", "ship_state", options) %> </div>

<div>   <label for="bill_zip">Zipcode</label><br/> <%= text_field("customer", "ship_zip", "size" => 10 ) %> </div>

<div>   <label for="bill_state">Country</label><br/> <%= options = [["Select a country", ""]] + Customer::COUNTRY_NAMES select("customer", "ship_country", options) %> </div>

<div>   <label for="different_bill">Check if you have a different billing address</label><br/>

<%= check_box_tag("different_bill") %> </div>

<%= observe_field(:different_bill, :update => "billinfo", :url => { :controller=>'shirts', :action => 'billing_address' }, :with => "'id='+value" ) %>

<p id="billinfo"></p>

<div>   <label for="pay_type">Payment method</label><br/> <select id="pay_type" name="pay_type"><option selected="yes"></option><option>Credit Card</option><option>Paypal</option> </select> </div>

<div> <br /> <%= submit_tag "Save" %> </div> <%= end_form_tag %>

#### partial

<label for="bill_address1">Your billing address</label><br/> <%= text_field("customer", "bill_address1", "size" => 40 ) %> </div>

<div>   <label for="email">Address line 2</label><br/> <%= text_field("customer", "bill_address2", "size" => 40 ) %> </div>

<div>   <label for="bill_city">City</label><br/> <%= text_field("customer", "bill_city", "size" => 40 ) %> </div>

<div>   <label for="bill_state">State</label><br/> <%= options = [["Select a state", ""]] + Customer::STATE_NAMES select("customer", "bill_state", options) %> </div>

<div>   <label for="bill_zip">Zipcode</label><br/> <%= text_field("customer", "bill_zip", "size" => 10 ) %> </div>

<div>   <label for="bill_state">Country</label><br/> <%= options = [["Select a country", ""]] + Customer::COUNTRY_NAMES select("customer", "bill_country", options) %> </div>

### controller action

  def billing_address     if params[:id] == "1"     render :partial => 'billinfo', :layout => false      else         render :nothing=>true      end     end