使用javascript的多选过滤器

时间:2018-10-22 11:09:18

标签: javascript jquery html codeigniter

我有选项标签,它可以与单个过滤器一起使用,并且我想使其成为多选。...以下是我的代码:-

$('#version_no').change(function () {
   var version_no = $('#version_no').val();
   if (version_no != null) {
      showAll(version_no);
   } else {
      showAll();
   }
   });

showAll()是在过滤后返回数据的函数。如果未选择过滤器,则会显示所有内容。

以下是查看代码:-

    <select multiple="multiple" style="margin-top:15px;" name="version_no" id="version_no">
   <option value="">Select Version No</option>
    <?php if (count($get_version_no)): ?>
           <?php foreach ($get_version_no as $version): ?>
                 <option value=<?php echo $version->version_no; ?>><?php echo $version->version_no; ?></option>
          <?php endforeach; ?>
          <?php else: ?>
  <?php endif; ?>

$get_version_no正在生成下拉值,例如1,1.1,1.2等。...

因此,我想使其多选,任何帮助将不胜感激。我正在使用codeigniter 3。

2 个答案:

答案 0 :(得分:0)

只需重构Java代码,以便version_no是一个数组而不是单个值。您可以使用':selected'选择器来获取所选选项。 (请参见https://api.jquery.com/selected-selector/) 您还需要重构showAll()函数,以便它解析数组而不是单个值。我还将让showAll()函数执行空检查,而不是执行if...then/else

答案 1 :(得分:0)

您需要为多个选择创建version_no数组名称

<select multiple="multiple" style="margin-top:15px;" name="version_no[]" id="version_no">

在jquery中

var version_no= [];

$.each($("#version_no option:selected"), function(){            
    version_no.push($(this).val());
});

var version = version_no.join(", ");

version是所有用逗号分隔的选定值的字符串