2016-07-08 2 views
0

У меня есть форма, использующая нарративную форму. Я хочу, чтобы он отображался, когда f.select выбирает параметр unificação.Отправить f.select параметр jquery и показать элементы динамической формы

Я использую пример, который я вижу в примере, когда я выбираю новую опцию оповещений, но я не знаю, как я посылаю выбранный элемент для работы и как я говорю ему, чтобы показать f. fields_for: унификации.

<div class="form-row"> 
    <label> 
     <span>Evento</span> 
      <%= f.select :event, ['Reencaminhar', 'Reclassificar', 'Rejeitar alteracão de diagnóstico', 'Rejeitar reencaminhamento', 'Solicitar esclarecimento', 'Cancelar solicitação', 'Rejeitar cancelamento', 'Responder', 'Unificação', 'Envio de cópia de ID', 'Reiterar', 'Registrar Solicitação', 'Reabrir solicitação', 'Complementar solicitação'], {}, :onChange => "fillForm.test(this)" %> 
    </label>  

</div> 

<%= f.fields_for :unifications do |unification_form| %> 
    <label> 
     <%= unification_form.link_to_remove "Remover cpf" %> 
     <%= unification_form.text_field :cpf %>  
    </label> 
<% end %> 

requests.coffee 

@fillForm = 
    test: -> 
     alert('Hello world') 
+0

Eduardo, ваш вопрос непонятен. Не могли бы вы предоставить весь HTML-код? Вы хотите выбрать свое событие и сразу отправить результат на сервер, как он работает? –

+0

Нет, я хочу выбрать опцию, и если параметр равен Unificação, на экране появится f.fields_for: unification. Этот код только печатает мир приветствия на экране, когда я изменяю f.select. –

ответ

0

Добавить дела до скрыть/показать вложенную форму блока:

<div id="attributes-to-display" style="display:none"> 
    <%= f.fields_for :unifications do |unification_form| %> 
    <label> 
     <%= unification_form.link_to_remove "Remover cpf" %> 
     <%= unification_form.text_field :cpf %>  
    </label> 
    <% end %> 
</div> 

Его скрыт по умолчанию. Я не использую кофе сценарий, поэтому возможное решение с простым JavaScript:

// binds the change event 
$("#the_select_id").on('change', function() { 
    // checks if the selected value is what you expect 
    if ($(this).val() == "whatever") { 
    // if so, show the block 
    $("#attributes-to-display").show(); 
    } 
    else { 
    // if not, hide the block 
    $("#attributes-to-display").hide(); 
    // and clean the cpf input box 
    $("#the_nested_input_id").val(''); 
    } 
}); 

Вы должны заменить идентификаторы (#) с правильной формой идентификаторами, так как у меня нет достаточной информации, чтобы обеспечить его.

+0

Спасибо, человек. Оно работает!! Я только меняю одну вещь, в div i put hidden = "true" вместо style = "display: none" –

Смежные вопросы