javascript - 集合检查框 = 集合检查框

标签 javascript jquery ruby-on-rails ruby ajax

如果用户选中或取消选中:comfilled日,我们如何自动将send_emailcollection_check_boxes与当前选中或未选中的内容进行匹配在:已提交 collection_check_boxes

例如,如果用户在已提交中选中“sun”并取消选中“fri”,那么这些更改也将反射(reflect)在:send_email中。

enter image description here

但反之则不然。

例如,如果用户更改 send_email 的选中日期,则任何 JavaScript 都不应生效。 :commited 只能在直接联系时更改。

enter image description here

<%= f.collection_check_boxes :committed, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %>

<%= f.collection_check_boxes :send_email, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %>

<script>
</script>

感谢javascript friend 们!

最佳答案

假设每个复选框集合都具有相同的值(星期一和星期一),您可以将每个复选框集合分组到一个 div 中。

<div class="committed-check-boxes">
  <%= f.collection_check_boxes :committed, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %>
</div>

<div class="send-email-check-boxes">
  <%= f.collection_check_boxes :send_email, Date::ABBR_DAYNAMES, :downcase, :to_s, checked: ["mon", "tue", "wed", "thu", "fri"] %>
</div>

仅监听来自 .comfilled-check-boxes div 的点击。从.send-email-check-boxes中找到匹配的复选框,并使用prop将checked设置为true/false。

<script>
  $('.committed-check-boxes input[type="checkbox"]').on('click', function() {
    var checkbox = $(this);

    $('.send-email-check-boxes')
      .find('input[value="' + checkbox.val() + '"]')
      .prop('checked', checkbox.prop('checked'));
  });
</script>

关于javascript - 集合检查框 = 集合检查框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41083587/

相关文章:

javascript - 使用 Ajax 将带有字母数字键的数组发送到 PHP 脚本

php - 如何在没有任何人工交互(即单击等)的情况下使用 JQuery .live()?

jquery - 尝试复制很酷的下拉内容

ruby-on-rails - ruby on Rails 中不可编辑的文本字段

javascript - 使用 AngularJS 获取数组中选定的按钮 id

javascript - JQuery 在单击按钮时添加多个可调整大小的 Div

javascript - 回发后禁用的单选按钮失去值(value)

javascript - 将整个单词保留在特定的列宽上

ruby-on-rails - 要扩展 Rails 的 `link_to` ,我应该使用 `alias_method_chain` 还是混合 + 继承?

ruby-on-rails - 如何在 Rails 5 中设置安全的 `_cfuid` cookie