【问题标题】:Bootstrap Multiselect: On submit getting length of selected options list instead of option valuesBootstrap Multiselect:提交时获取所选选项列表的长度而不是选项值
【发布时间】:2014-01-31 23:52:16
【问题描述】:

这是我第一次使用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
)

我觉得这一定是一种面部护理,但我已经做了大约两个小时,虽然我可以写出实现这一目标的方法,但我只能假设 Bootstrap 应该默认具有这样的功能.任何人都可以在这里为我指出正确的方向吗?

注意事项:

  • 确保已安装依赖项并正确加载 jQuery
  • 我正在使用 CakePHP & Foundation 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
});

【问题讨论】:

    标签: javascript jquery twitter-bootstrap multi-select


    【解决方案1】:

    您尚未为选项分配相应的值来反映[foo] =&gt; 3。所以,为了让这个对象像你想要的那样工作,你需要用这样的数字分配值:

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

    一旦节点找到与值匹配的特定数字,它就会抓取所选内容。

    【讨论】:

    • 这是我的愚蠢和误导性错误;我确实对每个选项都有独特的价值,以上是一个错字,道歉[对于那些稍后阅读本文的人,在我的选项值之上是'b''a''r'我最初写了'b','b' , 'b'].
    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2014-05-06
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多