moctan
December 28, 2007, 2:13am
1
No he encontrado la forma de inicializar explicitamente el campo hidden
en el plugin model_auto_completer:
#app /views/movtos/show.rhtml
<% form_remote_for :movto_item, :url => movto_items_path(@movto ), :html
=> { :id => “movto_item_form” } do |f| %>
Producto:
<%= model_auto_completer "producto[nombre]", "",
"movto_item[producto_id]", "", { }, { :size => 50 } %>
<%= submit_tag "Agrega producto" %>
<% end %>
#app /controllers/movto_items_controller.rb
class MovtoItemsController < ApplicationController
def create
@movto_item = MovtoItem.create(params[:movto_item])
end
end
#app /views/movto_items/create.rjs
if @movto_item.errors.empty ?
page.replace_html “flash_notice”, “”
page.insert_html :bottom, :items, :partial => “item”, :object =>
@movto_item
page[:movto_item_form].reset
else
page.replace_html “flash_notice”, error_messages_for(:movto_item)
page.show “flash_notice”
end
Si observan en create.rjs utilizo page[:movto_item_form].reset para
limpiar los campos del form_remote_for, hasta aqui no hay ningún
problema, pero por alguna razón que no he encontrado el
model_auto_completer siempre guarda el id del ultimo modelo
seleccionado, de tal forma que en las proximas llamadas Ajax siempre me
agrega el ultimo producto aunque el campo esté vacio.
De antemano muchas gracias por su ayuda.
Saludos.
Jaime Mora R.
moctan
December 28, 2007, 2:21am
2
On Dec 28, 2007, at 2:13 AM, Jaime Mora R. wrote:
<%= model_auto_completer “producto[nombre]”, “”,
“movto_item[producto_id]”, “”, { }, { :size => 50 } %>
Esta en los docs my friend
The hidden field will be named hf_name and will have an initial
value of hf_value.
– fxn
moctan
December 28, 2007, 3:09am
3
On Dec 28, 2007, at 2:13 AM, Jaime Mora R. wrote:
Si observan en create.rjs utilizo page[:movto_item_form].reset para
limpiar los campos del form_remote_for, hasta aqui no hay ningún
problema, pero por alguna razón que no he encontrado el
model_auto_completer siempre guarda el id del ultimo modelo
seleccionado, de tal forma que en las proximas llamadas Ajax siempre
me
agrega el ultimo producto aunque el campo esté vacio.
Esto creo que es porque reset() ignora campos ocultos. No he
encontrado una referencia JavaScript que documente esto, pero unas
pruebas con Firebug lo sugieren.
Si estoy en lo cierto habria que borrar el campo a mano desde la RJS,
por ejemplo asi:
untested
page << “$(‘movto_item_producto_id’).value = ‘’;”
– fxn
moctan
December 28, 2007, 4:31pm
4
Xavier N. wrote:
Si estoy en lo cierto habria que borrar el campo a mano desde la RJS,
por ejemplo asi:
untested
page << “$(‘movto_item_producto_id’).value = ‘’;”
RJS error:
TypeError: $(“movto_item_producto_id”) has no properties
Jaime Mora R.
moctan
December 28, 2007, 5:35pm
5
Xavier N. wrote:
Mira cual es el ID del campo oculto y ponlo ahi.
Tb probé con:
page << “$(‘movto_item[producto_id]’).value = ‘’;”
y obtengo el mismo RJS error.
Esta es la fuente que genera model_auto_completer :
Tb probé con el id anterior y lo mismo, el problema persiste. No crees
que sea la sintaxis del raw JavaScript ? EsperarÃa que funcionase con
movto_item[producto_id] por conveniencia ya que el último id entiendo es
aleatorio.
Jaime Mora R.
moctan
December 28, 2007, 5:06pm
6
On Dec 28, 2007, at 4:31 PM, Jaime Mora R. wrote:
TypeError: $(“movto_item_producto_id”) has no properties
Mira cual es el ID del campo oculto y ponlo ahi.
– fxn
moctan
December 28, 2007, 6:18pm
7
Xavier N. wrote:
Ah claro, esta el sufijo aleatorio. Mejor ir por el nombre si es unico.
El caso es que has de mirar el codigo fuente y limpiar el campo a mano
con JavaScript, por ejemplo (sobre la marcha):
page << ‘document.getElementsByName(“movto_item[producto_id]”)
[0].value = “”’;
No se si es correcto tal cual pero ves la idea.
– fxn
Por supuesto que vi la idea !!, y funcionó a la primera, tal cuál lo
pusiste ahÃ. Muchas gracias Xavier.
Yo no olvido el año viejo porque me ha dejado cosas muy buenas …
Feliz Año queridos compañeros Raileros !!!
Gracias … saludos
Jaime Mora R.
moctan
December 28, 2007, 6:28pm
8
Jaime Mora R. escribió:
No se si es correcto tal cual pero ves la idea.
Gracias … saludos
Jaime Mora R.
Feliz Año a todos igualmente.
moctan
December 28, 2007, 6:05pm
9
On Dec 28, 2007, at 5:35 PM, Jaime Mora R. wrote:
Tb probé con el id anterior y lo mismo, el problema persiste. No crees
que sea la sintaxis del raw JavaScript ? Esperaría que funcionase con
movto_item[producto_id] por conveniencia ya que el último id
entiendo es
aleatorio.
Ah claro, esta el sufijo aleatorio. Mejor ir por el nombre si es unico.
El caso es que has de mirar el codigo fuente y limpiar el campo a mano
con JavaScript, por ejemplo (sobre la marcha):
page << ‘document.getElementsByName(“movto_item[producto_id]”)
[0].value = “”’;
No se si es correcto tal cual pero ves la idea.
– fxn