Событие изменения флажка срабатывает только после перезагрузки страницы - PullRequest
0 голосов
/ 25 января 2019



& emsp; Я пишу приложение, используя Ruby on Rails, там у меня есть форма, где, если флажок установлен, он отображает определенный <div>, а если нет, я добавляю style="display:none:" через рельсы. С помощью Coffeescript и JQuery я также переключаю <div> при изменении.

CoffeeScript:

jQuery ->
  $(document).ready ->
    $("#hasUser").change ->
      $("#userPart").toggle();
      return
    return
  return

HTML:

    <div class="form-group">
        <%= contato_form.label :hasUser, :class => 'inline-checkbox' do %>
          Possui usuário <%= contato_form.check_box :hasUser, :id => 'hasUser' %>
        <% end %>
    </div>
</div><!-- Closing from uncopied code -->
<div id="userPart" class="findMe" <% if @contato.usuario.id.blank? %> style="display:none;" <% end %>>
  <h2> Usuário: </h2>
  <div class="container">
    <%= contato_form.fields_for :usuario do |usuario_form| %>
      <%= render partial: 'usuarios/campos_usuario', locals: {form: usuario_form} %>
    <% end %>
  </div>
</div> 


Проблема в том, что все работает хорошо, когда я использую форму для Create, но на Edit Coffeescript запускается только после перезагрузки.

1 Ответ

0 голосов
/ 28 января 2019

Это была проблема с турбо-ссылками.Мне пришлось проверить, правильно ли загружены турбо-ссылки, прежде чем пытаться запустить остальную часть кода.

jQuery ->
  $(document).ready ->
    $(document).on 'turbolinks:load', #Added line
      $("#hasUser").change ->
        $("#userPart").toggle();
        return
      return
    return
  return
...