javascript - jQuery:将复选框的值添加到输入文本字段

标签 javascript jquery html checkbox

我正在尝试将任何选中的复选框的值添加到输入文本字段。 这是我的 fiddle :http://jsfiddle.net/Lf6ky/

$(document).ready(function() {
  $(":checkbox").on('click', function() {
    if ($(':checkbox:checked')) {
      var fields = $(":checkbox").val();
      jQuery.each(fields, function(i, field) {
        $('#field_results').val($('#field_results').val() + field.value + " ");
      });
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input type="text" id="field_results" /><br>

<input type="checkbox" value="1">1<br>
<input type="checkbox" value="2">2<br>
<input type="checkbox" value="3">3

在这个例子中,我有 3 个复选框,值分别为 1、2、3。如果我单击所有这些复选框,则输入字段应如下所示:1 2 3

如果我取消选中这些复选框中的任何一个,那么相应的值应该会在输入字段中消失。

我该怎么做?

最佳答案

我已将复选框集合存储在变量 $checks 中,然后将处理程序附加到该集合。在事件处理程序中,我再次获取集合并仅过滤(返回)选中的复选框。

map() 返回一个包含选中复选框值的 jQuery 对象,get() 将其转换为标准数组。用空格连接这些值并将它们放入输入中。

$(document).ready(function(){
    $checks = $(":checkbox");
    $checks.on('change', function() {
        var string = $checks.filter(":checked").map(function(i,v){
            return this.value;
        }).get().join(" ");
        $('#field_results').val(string);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="field_results"/><br>

<input type="checkbox" value="1">1<br>
<input type="checkbox" value="2">2<br>
<input type="checkbox" value="3">3

关于javascript - jQuery:将复选框的值添加到输入文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945014/

相关文章:

javascript - 在单线程环境中这种 Jquery 行为如何可能?

jquery - 如何获取jqGrid选定行单元格的值

javascript - 图库不适用于 iPad/移动设备

javascript - 使用 javaScript 切换 CSS 文件不适用于输入按钮 POST 方法

javascript - 包含多个生成任务的 Grunt 任务将只运行第一个任务

javascript - JQuery - 通过获取 html 元素、单击属性来创建数组对象

javascript - 在页面加载时在 Chrome 中调试 ReactJs - 使用控制台时,这个和其他所有内容都是未定义的

javascript - Highcharts 返回错误 14

html - 动画 SVG Logo

html - 表格内的可滚动 div