【问题标题】:Checkbox change event only fire after reloading page复选框更改事件仅在重新加载页面后触发
【发布时间】:2019-06-18 19:48:57
【问题描述】:



我正在使用 Ruby on Rails 编写一个应用程序,我有一个表单,如果选中一个复选框,它会显示某个 <div>,如果不是,我通过 rails 添加style="display:none:"。通过 Coffeescript 和 JQuery,我还可以在更改时切换相同的 <div>

咖啡脚本:

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 仅在重新加载后运行。

【问题讨论】:

    标签: javascript jquery ruby-on-rails coffeescript ruby-on-rails-5


    【解决方案1】:

    这是一个涡轮链接问题。在尝试运行其余代码之前,我必须检查是否正确加载了 turbo-links。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2020-06-19
      • 2013-08-03
      • 2023-03-14
      • 2011-01-23
      相关资源
      最近更新 更多