Bootstrap Multiselect:提交获取所选选项列表的长度而不是选项值

时间:2014-01-31 23:52:16

标签: javascript jquery twitter-bootstrap multi-select

这是我第一次使用Bootstrap Muliselect;在此之前,这是一次非常优雅的体验:

提交表单时,POST请求的结果是每个select.multiselect元素中所选选项的数量,而不是其值,即:

如果我创建:

<select name='foo'>

有3个选项

<option value='b' selected='selected'>B</option>
<option value='a' selected='selected'>A</option>
<option value='r' selected='selected'>R</option>

随后输入print_r($_POST)会产生:

Array
(
    [foo] => 3
)

我觉得这一定是一个facepalm类型的时刻,但我已经在它大约两个小时,虽然我可以写出实现这一目的的方法,我只能假设Bootstrap应该默认具有这样的功能。有人能指出我正确的方向,在这里吗?

注意:

  • 确保安装依赖项&amp; jQuery正确加载
  • 我正在使用CakePHP&amp;基金会4,但我认为没有任何冲突/碰撞
  • 我通过$("#MahFormNaym").submit();提交表单,我觉得这无关紧要,但我是一个JavaScript小组

PHP / HTML:

<select id="<?php echo $model;?>-filter" class="multiselect" multiple="multiple">
<?php foreach($elements as $id => $element):?>
    <option value="<?php echo $id;?>"> <?php echo $element;?> </option>
<?php endforeach;?>
</select>

JavaScript:

$(".multiselect").multiselect({
    buttonWidth:"600px",
    includeSelectAllOption: true,
    enableFiltering:true
});

1 个答案:

答案 0 :(得分:0)

您尚未为选项指定相应的值以反映[foo] => 3。因此,为了使此对象能够像您想要的那样工作,您需要使用以下数字分配值:

<option value='0' selected='selected'>B</option>
<option value='1' selected='selected'>A</option>
<option value='2' selected='selected'>R</option>

一旦节点找到与值匹配的特定号码,它就会获取所选内容。