ruby-on-rails - mac - permitir ventanas emergentes firefox
Cómo hacer que la ventana emergente de Facebox permanezca abierta y el contenido dentro de la ventana frontal cambie después de enviar (1)
Puedes continuar usando facebox_render o una de sus horquillas, hará que todo sea un poco más fácil :)
Acerca de su problema, lo que necesita es el formulario dentro de la caja frontal para hacer una solicitud AJAX para que pueda usar format.js para responder a esta llamada. Entonces, en este caso, necesita form_remote_tag
para publicar sus datos usando AJAX.
En el controlador, recibirá una solicitud AJAX, la manejará con responder_a.js y luego podrá volver a hacer una render_to_facebox. Ahora verá lo que quiere dentro de la caja de la cara.
En la vista:
# /app/views/invites/new
<% form_remote_tag({ :controller => ''registration_code'', :action => ''create'' }, :id => ''codeForm'') do %>
<%= text_field_tag :code %>
<br />
<%= submit_tag ''Confirm'' %>
<% end %>
Y en el controlador:
# /controllers/users_controller
def type
respond_to do |format|
format.html
format.js { render_to_facebox }
end
end
Espero que ayude un poco, ciao!
Soy un jQuery total n00b . En mi aplicación Rails esto es lo que sucede:
Estoy en la página de inicio, hago clic en este enlace:
<a href=''/betas/new'' rel=''facebox''>Sign up</a>
Aparecerá una hermosa ventana emergente de facebox y presentará estas vistas y la forma que lo contiene:
# /app/views/invites/new
<% form_tag({ :controller => ''registration_code'', :action => ''create'' }, :id => ''codeForm'') do %>
<%= text_field_tag :code %>
<br />
<%= submit_tag ''Confirm'' %>
<% end %>
Hago clic en Enviar y si el código es válido, el usuario se toma en otra página en otro controlador:
def create
# some stuff
redirect_to :controller => ''users'', :action => ''type''
end
Ahora me gustaría renderizar esa página DENTRO de la MISMA ventana emergente que contiene el formulario, después de presionar el botón de enviar, pero no tengo IDEA de cómo hacerlo. Lo he intentado con FaceboxRender, pero esto sucede:
Versión original:
# /controllers/users_controller
def type
end
Si lo cambio así, no pasa nada:
# /controllers/users_controller
def type
respond_to do |format|
format.html
format.js { render_to_facebox }
end
end
Si lo cambio así (sé que está mal pero soy un n00b, entonces está bien :-):
# /controllers/users_controller
def type
respond_to do |format|
format.html { render_to_facebox }
format.js
end
end
Tengo este renderizado:
try {
jQuery.facebox("my raw HTML from users/type.html.erb substituted here")''); throw e }
Alguna solución?
¡¡MUCHAS GRACIAS!!
Ahora recibo un error "Ajax no definido" de la consola Firebug. ¿Qué significa?