【问题标题】:How to create/update an array using input checkboxes如何使用输入复选框创建/更新数组
【发布时间】:2016-02-02 19:42:28
【问题描述】:

在我看来,我正在遍历一个名为 @colleaguesCustomers 集合,并将它们作为复选框输入显示在列表中,如下所示:

<ol>
  <% @colleagues.each do |c|%>
    <li>
       <input type="checkbox">
           <%= c.full_name %>
           <%= c.id %>
       </input>
    </li>
  <% end %>
</ol>

我想要做的是将每个选中/选择的名称收集到一个数组中,按下按钮后,它将被发送到我的控制器。我的问题是,如何在 javascript 中创建一个动态数组,以便将同事的 id 添加到数组中或在未选中时将其删除?

谢谢

【问题讨论】:

  • 你可以不用 JS,但使用 Rails 形式。它对你有用吗?或者你坚持我们给你JS解决方案?让我知道,然后我可能会帮助你
  • 仅供参考,输入是无效元素,您的 HTML 标记没有意义。现在发送复选框到服务器,设置值和名称属性和serialize them(或serializeArray)或使用form 包装它们
  • @ArupRakshit 我认为我需要使用 JS,因为我需要使用 AJAX 在控制器之间来回发送信息而不会丢失视图,因为它不会在表单提交时发送到控制器

标签: javascript jquery html ruby-on-rails checkbox


【解决方案1】:

也许这个例子可以帮助你:

<ul id="featuresOptions" class="options" style="display: block;">
    <li><label><input type="checkbox" name="Apartment" value="6"> Apartment</label></li>
    <li><label><input type="checkbox" name="House" value="7"> House</label></li>
    <li><label><input type="checkbox" name="Lot" value="8"> Lot</label></li>
    <li><button class="button" id="featuresButton">Filter</button></li>
</ul>

$(document).on('click', "#featuresButton", function() {
    var formData = [];
    $("#featuresOptions li input").each(function(e) {
        if($(this).is(":checked")) {
            formData.push($(this).val());
        }
    });
});

【讨论】:

  • 这非常有用,谢谢。行 $(this).val();正在检索输入标签中指定的值,但我想要的值是 id,有没有办法可以将输入的值设置为@同事的 id?
  • 是的,就像&lt;input type="checkbox" value="&lt;%= c.id %&gt;"&gt;&lt;%= c.full_name %&gt;&lt;/input&gt; BTW,如果你坚持我的回答,请勾选;)
  • 太棒了,我不敢相信我自己也想不到!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
相关资源
最近更新 更多