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