如何从隐藏输入填充多选输入,反之亦然?

时间:2015-02-12 02:43:27

标签: javascript jquery-select2

所以我有一个使用此http://www.phpkobo.com/address_book.php设置的地址簿工具。我还设置了Select2,这是一个jquery插件,可以管理多个选择输入https://select2.github.io/examples.html

因此,这个地址簿工具不允许您设置多选输入,因此我必须通过创建多选输入来设计我的方式,然后将所选输入复制到隐藏输入中。使用下面的脚本,我设法将所选项目自动复制到我拥有的隐藏输入。

function loopSelected()
{
  var txtSelectedValuesObj = document.getElementById('hidden_input');
  var selectedArray = new Array();
  var selObj = document.getElementById('selected_items');
  var i;
  var count = 0;
  for (i=0; i<selObj.options.length; i++) {
    if (selObj.options[i].selected) {
      selectedArray[count] = selObj.options[i].value;
      count++;
    }
  }
  txtSelectedValuesObj.value = selectedArray;
}

所以这个脚本工作得很好,但问题是,当我编辑一个条目时,我的多选输入是空的,因为所有数据都保存在隐藏的输入上。我试图弄清楚如何用隐藏输入中的数据填充多选输入,反之亦然?

任何帮助都将不胜感激。

这是我工作的一个例子: https://jsfiddle.net/akhyp/1956/

1 个答案:

答案 0 :(得分:0)

通过此主题Jquery script - Fill select with input text and vice versa

获得了一些帮助

以下是最终产品的效果:http://jsfiddle.net/akhyp/1966/

 $("#txt").bind('keyup' , function(e){
    var ar = $(this).val().split(",");
    $("#sel option").each(function(){
        if(ar.indexOf($(this).val()) != -1)
           $(this).attr("selected","selected");
    });
  });
$('#sel').change(function(){
    $('#txt').val($('#sel').val());
});
相关问题