Ajax - Updating Field with Selection

Hi all,
I have two fields in a form.
One text field non asociated to the model for the user type a value.
view is:
<%= text_field_tag ‘item_cod’,’’, :size => 3 %>

Other a field with a select list with codes, names for the user
from. The view is:

<%= f.select :item_id, Item.select_list, :size => 40 %>

item_id is the real field of my model.

I want the following behavior.

  1. If the user type a code into the text_field tag -> Update the list
    the user view the corresponding name of the item they type.
  2. If the user select from the list -> Update the text field with
    code corresponding to the name selected. (this is the easy part)

My form works fine with one Observe field for the :item_id list but
can’t do work the point 1.

Thanks in advance,

You probably need to put the select into a partial and then refresh
the partial when you return from the observe field. I would probably
go with an ajax “on blur” with the text field as this would put a bit
less load on the server.

I already have an onblur with the text field and another with the select
This works fine, but I don`t know how to represent in the select list
corresponding name of the code typed in the text field.

2009/8/6 Me [email protected]

Put the select into a partial then do this:

This is what I came up with a while back to re populate a select box
after a DB add.

Mop is just my main Table / form.

When you add the person to the db then do this:

@mop = Mop.find(params[:id])

a = Contact.all.collect{|p| [ p.id ] }
b = @mop.contacts.all.collect{|p| [ p.id ] }
c = a-b
ar = Array.new
    ar << p
@contacts = Contact.find(:all, :conditions => ["id IN (?)",

ar]).collect {|p| [ p.name, p.id ] }

In the RJS do this:

page[:contact_id].replace :partial => ‘updateContactList’, :locals =>
{ :contacts => @contacts, :mop => @mop, :person => @person }

Partial similar to this:

<%= select(‘contact’, ‘id’, @contacts, {:prompt => ‘Select Contact’},
{ :onchange => remote_function( :url => { :controller =>
‘contacts’, :action => “ajaxshowcontact”, :id => @mop},
:with => “‘contactid=’ + this.value” )
} ) %>