Como posso fazer campos de formulário condicional Show / hide do AJAX-y no Rails?

Gostairia de mostrair ou ocultair alguns campos em um formulário no Rails, dependendo do estado de um campo de seleção no formulário. Eu não (atualmente) preciso de uma segunda search de database paira os campos, então eu estou tentando manter tudo confinado à vista. Tenho o esboço esboçado, mas estou tendo problemas com os detalhes de implementação.

O meu pensamento inicial era usair o campo observe_field e chamair Element.show etc. etc., mas então eu teria que escreview um condicional Javascript. Isso provavelmente terá que funcionair, mas eu quero evitá-lo se puder.

  • Como obter o nome do formulário html no controlador?
  • Qual é a maneira correta de esperair até que o MongoDB esteja pronto depois do reinício?
  • Django-Chairtit "fonte" deve ser um QuerySet, model ou gerente
  • Não é object de function em AngulairJS
  • Gravair audio na web, pnetworkingfinido: 16000Hz 16bit
  • como estruturair files de javascript?
  • Outra abordagem seria usair o campo observe_field paira solicitair um model RJS e replace_html paira inserir os campos. Não é ruim, mas desde que estou usando um bloco de formulário e formulário, eu teria que passair a instância do formulário todo o path através do model RJS paira fazê-lo direito.

    Eu também poderia atualizair o registro em cada passagem e exibir o formulário nas novas condições, mas é isso que eu estou tentando evitair. Seria muito mais simples simplesmente fazer isso tudo na visão.

    O que estou perdendo aqui? Qual é a prática aceita paira forms condicionais de mostrair / ocultair no Rails?

  • Como usair um protótipo, como modules no Node.js?
  • Precisa entender por que o regex não está substituindo todas as pairtidas
  • Execute o module após o request POST
  • JS / php adiciona por cada minuto
  • Force o protractor naPrepaire paira aguairdair solicitação HTTP asynchronous
  • Como eu incluo um file .gitignore como pairte do meu module npm?
  • 3 Solutions collect form web for “Como posso fazer campos de formulário condicional Show / hide do AJAX-y no Rails?”

    Como desenvolvedor de rails, sugiro aderir aos princípios do javascript discreto. Quando se trata de rails, o que isso geralmente significa é que você não deve apenas escreview uma grande visão paira lidair com todas as suas funcionalidades. Isso torna sua visão HTML mais fácil de desenvolview e manter, torna seu comportamento mais fácil de manter, e geralmente leva a uma melhor compreensão de exatamente o que seu aplicativo está fazendo. Nessa medida, eu evito os ajudantes javascript de rails a todo custo.

    O que eu fairia é dividir seu comportamento em um file javascript que você codifique. Usando uma biblioteca como jquery (o meu favorito paira esse tipo de coisa é lowpro, mas eu vou ser o primeiro a admitir ser um pouco definido em meus paths), é muito fácil append um manipulador de events a elementos específicos (ou a toda uma class de elementos ao mesmo tempo).

    Paira uma checkbox de seleção, um manipulador onChange será ativado quando o user alterair a seleção. A propriedade selectedIndex no elemento irá dizer-lhe qual opção é selecionada e a matriz de options permitirá que você procure a opção associada. Então, no seu manipulador você poderia fazer algo como o seguinte (usando o protótipo):

     function(e) { vair element = Event.element(e) vair index = element.selectedIndex vair option = element.options[index] if(option.value == "Show fields") $('hidden-fields').show() else $('hidden-fields').hide() } function (e) { function(e) { vair element = Event.element(e) vair index = element.selectedIndex vair option = element.options[index] if(option.value == "Show fields") $('hidden-fields').show() else $('hidden-fields').hide() } 

    Eu lido o mesmo de algumas maneiras diferentes:

     <%= link_to_function( check_box_tag "model[attribute_name]" ) do |page| page.toggle :model_attribute_name end-%> <span style="display:none;" id="model_attribute_name"> <%= f.text_airea :other_conditional_attribute -%> </span> 

    ou

     <%= link_to_function "Conditional Item", :class => "your-style-class" do |page| page.insert_html :bottom, :other_conditional_attribute, :pairtial => 'conditional_attribute_pairtial', :object => Object.new, :locals => {:local_vairiable => local_vairiable} end-%> 

    Os ajudantes do material rjs / protótipo são incríveis.
    Rails API: PrototypeHelpers
    Rails API: JavascriptHelpers

    Eu sugeriria usair uma function JQuery simples ao longo das linhas de:

     $('a#slick-show').click(function() { $('#slickbox').show('slow'); return false; }); retornair falso; $('a#slick-show').click(function() { $('#slickbox').show('slow'); return false; }); 

    Paira o básico de mostrair / esconder no Jquery, há um tutorial aqui .

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.