首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >On select/unselect of复选框显示在rails中添加/删除文本区域中的值

On select/unselect of复选框显示在rails中添加/删除文本区域中的值
EN

Stack Overflow用户
提问于 2015-06-23 03:51:59
回答 1查看 252关注 0票数 2

在我的rails应用程序中,会显示一个记录列表,每个记录前面都有复选框,还有一个用来选择所有记录的复选框。我想在文本区域中添加或删除parents_contact_no数据。选中复选框时,应将相应记录的parents_contact_no添加到用逗号分隔的文本区,取消选中相应记录的复选框时,应删除相应记录的parents_contact_no。如果选中了select all复选框,则应将所有记录的parents_contact_no添加到文本区域。

必须在其中显示数字的文本区域

代码语言:javascript
复制
  <div class="field">
    <%= f.label :sent_to %><br>
    <div class="result_div">
      <%= f.text_field :sent_to %>
    </div>
  </div>

.html.erb文件

代码语言:javascript
复制
<% if @contact.empty? %>
    <h4>No records to display</h4>
<% else %>

    <table>
      <thead>
        <tr>
          <th><%= check_box_tag "contact_nos[]", @contact.map(&:parents_contact_no) %></th>
          <th>Roll no</th>
          <th>Class</th>
          <th>Section</th>

          <th>Father name</th>

          <th>Parents contact no</th>

          <th colspan="3"></th>
        </tr>
      </thead>

      <tbody>
        <% @contact.each do |student| %>
          <tr>
            <td><%= check_box_tag "contact_no[]", student.parents_contact_no %></td>
            <td><%= student.roll_no %></td>
            <td><%= student.class_name %></td>
            <td><%= student.section %></td>

            <td><%= student.father_name %></td>

            <td><%= student.parents_contact_no %></td>

            <td><%= link_to 'Show', student %></td>
            <td><%= link_to 'Edit', edit_student_path(student) %></td>
            <td><%= link_to 'Destroy', student, method: :delete, data: { confirm: 'Are you sure?' } %></td>
          </tr>
        <% end %>
      </tbody>
    </table>
<% end %>

如何通过jquery/javascript做到这一点?

我已经添加了一个脚本,这是对一个复选框的更改将添加/删除文本区域中的联系人。我面临的问题是如何获取当前复选框的值并将其放入文本区域。

代码语言:javascript
复制
<script>
  $(document).ready(function() {
    $('[id^=contact_no_]').change(function() {
        alert("checked");
        alert($('input["name=contact_no[]"]:checked').value());
        $('#message_message_text').val("Hello");

    });
  });
</script>
EN

回答 1

Stack Overflow用户

发布于 2015-06-23 05:41:06

我得到了答案,适用于我的脚本如下所示

代码语言:javascript
复制
<script>
  $(document).ready(function() {
    $('[id^=contact_no_]').change(function() {
        //alert("checked");
        var checkedValues = $('input:checkbox:checked').map(function() {
    return this.value;
}).get().join(", ");
        //alert(checkedValues);
        $('#message_sent_to').val(checkedValues);

    });
  });
</script>

解释:因为我们想要获取复选框的id,第一个记录的形式是contact_no_1,第二个记录的形式是contact_no_2,依此类推。因此,我们使用正则表达式(如id^=contact_no_ )获得id,并在此基础上调用一个更改函数,该函数将用于选择和取消选择。然后,我们在一个变量checkedValues中获取所有选中的复选框的值,并基于逗号将这些值连接起来。最后,我们将checkeValues变量内容添加到文本区。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30988612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档