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

时间:2015-02-12 05:50:28

标签: 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

1 个答案:

答案 0 :(得分:1)

我认为您可以使用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);
});