You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何用jQuery获取Form::select多选框的选中参数?

问题解答

1. 你用的$(...).multiselect()方式为什么无效?

这个方法不是jQuery原生方法,它属于第三方多选插件(比如bootstrap-multiselect)的专属方法。你没引入对应的插件文件,所以浏览器会抛出multiselect is not a function的错误,自然无法正常使用。

2. 正确获取多选框选中参数的方法

先确保多选框本身配置正确

用Form::select创建多选框时,必须满足两个关键配置:

  • name属性要加[],让Laravel能识别为数组参数
  • 开启multiple属性,启用多选功能

示例代码:

{!! Form::select('itemStatus[]', $statusOptions, null, [
    'id' => 'itemStatus',
    'multiple' => 'multiple',
    'class' => 'form-control'
]) !!}

方式一:用jQuery原生方法获取(无需第三方插件)

jQuery原生对多选<select>元素提供了直接获取选中值的能力:

// 直接获取选中值的数组
var selectedStatuses = $('#itemStatus').val();

// 发送POST请求示例
$.post('/your-api-url', {
    itemStatus: selectedStatuses,
    _token: '{{ csrf_token() }}' // Laravel必须传CSRF令牌
}, function(res) {
    // 处理接口响应
});

如果需要获取选中项的文本和值的详细信息,可以遍历选中的option:

var selectedItems = [];
$('#itemStatus option:selected').each(function() {
    selectedItems.push({
        value: $(this).val(),
        text: $(this).text()
    });
});

方式二:如果要使用multiselect()插件

如果你确实想用这个插件方法,需要先完成插件引入:

  1. 下载并引入插件的CSS和JS文件(必须在jQuery之后引入)
  2. 初始化插件:
$(function() {
    // 初始化multiselect插件
    $('#itemStatus').multiselect();
    
    // 获取选中项(插件提供的方法)
    var selected = $('#itemStatus').multiselect('getSelected');
    // 或者依然可以用原生val()方法,多数插件会兼容
});

后端接收参数

在Laravel控制器中,直接通过请求对象获取数组参数:

public function handleRequest(Request $request)
{
    $selectedStatuses = $request->input('itemStatus');
    // $selectedStatuses 是一个包含所有选中值的数组
}

内容的提问来源于stack exchange,提问作者mstdmstd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:46:02