javascript - 如何使用选中的复选框文本自动填写输入文本字段?

标签 javascript jquery

我有一组多个复选框,当我选中它们时,它们的标签文本需要在输入字段中以逗号分隔。但是,我不想在输入字段中显示这些值,因为它也用于搜索词。

目前,我可以使用按钮抓取复选框文本并将其发送到输入字段,如下所示:

jQuery('#save_value').click(function() {
  var sel = jQuery('input[type=checkbox]:checked').map(function(_, el) {
   return jQuery(el).parent().text();
  }).get();
  jQuery("#s").val(sel);
});

但是A:我不应该有按钮,但是一旦您检查值(文本)就应该转到以逗号分隔的输入字段,B:这些值当前显示在字段中,但我不想显示它们,以便在保留数据的同时保留空字段。

<label>
  <input type="checkbox">
  NY
</label>
<label>
  <input type="checkbox">
  LA
</label>
<input type="button" id="save_value" name="save_value" value="save"> <= I don't want this
<input id="s" type="text">
<inputtype="submit"> <= The submit should get all the data in the text field, even those data from the checked boxes that I am grabbing but that I don't want to display to the users

最佳答案

我认为你可以使用2个字段,1个用于接收用户输入,另一个用于将复选框和用户输入的组合数据发送到服务器

<input id="checkIt" name="checkIt" name="s" type="hidden"/>
<input type="text" class="form-control" value="" id="s" placeholder="Search for..."/>

然后在表单中提交处理程序

jQuery('form').submit(function () {
    var sel = jQuery('input[type=checkbox]:checked').map(function (_, el) {
        return jQuery(el).parent().text().trim();
    }).get();
    var s = $('#s').val().trim();
    jQuery("#checkIt").val(sel.join()+ ',' + s);
});

关于javascript - 如何使用选中的复选框文本自动填写输入文本字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470243/

相关文章:

javascript - json 对象的完整路径

javascript - 如何在 Jest 中使用 doMock?

javascript - 尝试使用 JS 在单击事件上应用类

javascript - 检查一个时取消选中其他单选按钮,有问题

javascript - 在 jquery 事件中引用对象实例的问题

jQuery $.ajax() 功能 - 访问 XMLHttpRequest 对象

javascript - 为什么这段 JS 代码不能在 IE 11 中用于 SVG 动画?

javascript - 使用一个选择来确定表单上的哪些其他选择可见

javascript - 在数据表的onclick函数中传递两个以上的参数

javascript - 从 hta 打开 .chm