usando div display none, não passa mais o valor

289 views
Skip to first unread message

BongoRails

unread,
Jul 3, 2012, 4:40:40 PM7/3/12
to rail...@googlegroups.com
Pessoal, em uma view de inserção tenho algo assim, funcionando corretamente, enviando no array o categorias_id

                    <div id="mostraCategorias">
                             <% for categpai in @categpai %>
                                        <div class="formRow">
                                    <%= f.input :categorias_id, :label => '', :as => :radio, :collection => Categoria.find(:all, :conditions => { :pertence_categoria => categpai })%>
                                          </div>
                         <% end %>
                     </div>

{"mural"=>{"usuariopfs_id"=>"1",
 "title"=>"aaaaaaaaaaaaa",
 "body"=>"<p>aaaa</p>",
 "usuariopf_rl_usuariopf_gp_tps_id"=>"9",
 "mural_tps_id"=>"2",
 "linkvideo"=>"",
 "categorias_id"=>"151",
 "linkinternet"=>"",
 "linkvideo2"=>"",
 "linkvideo3"=>"",
 "mural_images_attributes"=>{"0"=>{"caption"=>""},
 "1"=>{"caption"=>""},
 "2"=>{"caption"=>""},
 "3"=>{"caption"=>""},
 "4"=>{"caption"=>""}},
 "linkvideo4"=>""}}

preciso inserir um parametro de display none enviado pela agencia, assim essa parte das categorias fica oculta e quando o cara clica, abre como se fosse um popup

          <div style="display:none;">
                    <div id="mostraCategorias">
                             <% for categpai in @categpai %>
                                        <div class="formRow">
                                    <%= f.input :categorias_id, :label => '', :as => :radio, :collection => Categoria.find(:all, :conditions => { :pertence_categoria => categpai })%>
                                          </div>
                         <% end %>
                     </div>
            </div>

só que nesse caso não esta passando o categorias_id????? alguma ideia???? muitoooooooooooooooooooo estranho


{"mural"=>{"usuariopfs_id"=>"1",
 "title"=>"aaaaaaaaaaaaa",
 "body"=>"<p>aaaa</p>",
 "usuariopf_rl_usuariopf_gp_tps_id"=>"9",
 "mural_tps_id"=>"2",
 "linkvideo"=>"",
 "linkinternet"=>"",
 "linkvideo2"=>"",
 "linkvideo3"=>"",
 "mural_images_attributes"=>{"0"=>{"caption"=>""},
 "1"=>{"caption"=>""},
 "2"=>{"caption"=>""},
 "3"=>{"caption"=>""},
 "4"=>{"caption"=>""}},
 "linkvideo4"=>""}}



Bongô


Rafael Mendonça França

unread,
Jul 3, 2012, 4:42:01 PM7/3/12
to rail...@googlegroups.com
Que browser você está usando?

--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

BongoRails

unread,
Jul 3, 2012, 5:02:17 PM7/3/12
to rail...@googlegroups.com
firefox 12!!!!!!!!

André

Rafael Mendonça França

unread,
Jul 3, 2012, 5:10:45 PM7/3/12
to rail...@googlegroups.com
Se ele não está enviando nenhum item é porque nenhum dos radio buttons foram selecionados.

Bruno

unread,
Jul 3, 2012, 5:13:20 PM7/3/12
to rail...@googlegroups.com
Um hidden_field não resolve? Não sei detalhes do teu código, mas de repente quando o dialogo fechar vc pode setar o valor escolhido num hidden_field fora do display: none.

BongoRails

unread,
Jul 3, 2012, 5:13:13 PM7/3/12
to rail...@googlegroups.com
selecionado esta, a div abre, eu seleciono, clico fora da div, ela se oculta novamente, ai clico em gravar, mas não passa!

Basta tirar isso <div style="display:none;"> e funciona...


André

Rafael Mendonça França

unread,
Jul 3, 2012, 5:17:45 PM7/3/12
to rail...@googlegroups.com
Eu tentei reproduzir no Firefox mas não consegui.

Historicamente alguns browser não enviavam inputs dentro de elementos 'display:none' porque o browser retira o conteúdo desses elementos do DOM. Eu não sei se isso ainda ocorre nos browser hoje em dia, mas gostaria muito de confirmar.

Tem um issue no Rails relacionada a isso, https://github.com/rails/rails/pull/6608, se for confirmado que os browsers ainda se comportam desse jeito eu vou poder fecha-la. xD

2012/7/3 Bruno <bsiq...@gmail.com>

BongoRails

unread,
Jul 3, 2012, 5:28:11 PM7/3/12
to rail...@googlegroups.com
o que colocar para o hidden_field pegar? não tem post nem nada....

BongoRails

unread,
Jul 3, 2012, 5:30:09 PM7/3/12
to rail...@googlegroups.com
Rafael, li o tópico e achei muito estranho  
he use of `display:none` rather than `display:inline` fixes this problem.



Na verdade, se eu colocar display:inline, funciona, mas não é isso que é esperado, pois a div aparece (com suas centenas de categorias), usando display:none, realmente não passa o campo selecionado...



bongô - ainda num beco sem saída.

Rafael Mendonça França

unread,
Jul 3, 2012, 7:09:08 PM7/3/12
to rail...@googlegroups.com
Basicamente assim é como os browsers funcionam. Ele não enviam inputs dentro de elementos com display:none. Não tem nada que você possa fazer para isso funcionar, apenas não use display:none.
2012/7/3 BongoRails <bongo...@gmail.com>

BongoRails

unread,
Jul 3, 2012, 9:39:02 PM7/3/12
to rail...@googlegroups.com
uhaahuhuahuahua essa não era realmente uma resposta que eu gostaria :(

sem display none vou ter de exibir:

opção 1: combo categorias e combo subcategorias

opção 2: radio button com trocentas subcategorias para o cara escolher (tela fica muito grande)

que saco

:(


Bongô

Douglas Matoso

unread,
Jul 4, 2012, 7:32:08 AM7/4/12
to rail...@googlegroups.com
Não rola um campo input hidden? Vc continua abrindo um popup, e o que
for selecionado no popup vc preenche um campo hidden via JS.

[]'s

----------------------------------------
Douglas Matoso
http://dmatoso.com
----------------------------------------


2012/7/3 BongoRails <bongo...@gmail.com>:

Bruno

unread,
Jul 4, 2012, 8:49:35 AM7/4/12
to rail...@googlegroups.com
Acho que se o radio estiver selecionado vc pode setar o valor com "true" no hidden_field.
Como assim não tem post? Não existem um form em volta destes campos?

BongoRails

unread,
Jul 4, 2012, 11:35:49 AM7/4/12
to rail...@googlegroups.com
Bruno bom dia, se sua solução funcionar, vai ser simplesmente fantástico, segue abaixo (tem um form principal e um form secundário, só tem botão no principal)

 <% form_for @mural, :html => {:multipart => true} do |f| %>
<% semantic_form_for @mural, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
     <div style="display:none;">
           <div id="mostraCategorias">
               <% @categpai = Categoria.find(:all, :conditions => { :id => [2,3,4,5,6,7,8,9,10,11,12] }) %>

		<% for categpai in @categpai %>
                <%= f.input :categorias_id, :required => false, :label => 'Vísivel para:', :as => :radio, :collection => Categoria.find(:all, :conditions => { :pertence_categoria => categpai })%>
                <% end %>
            
            </div>
     </div>
<% end %>

<%= link_to_function "gravar", "document.getElementById('new_mural').submit();", :class => "btnLaranjaGrande" %>
<% end %>

Rafael Mendonça França

unread,
Aug 3, 2012, 10:20:09 AM8/3/12
to rail...@googlegroups.com
Olha eu aqui de novo. Será que dá par você postar o HTML gerado pelas tags dentro da div que está com o display:none? Nós (Rails contributors) temos uma suspeita do que seja o seu problema.

2012/7/4 BongoRails <bongo...@gmail.com>
Reply all
Reply to author
Forward
0 new messages