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

Nova Laravel中无需第三方库实现Select选中值动态填充Text字段

Laravel Nova 原生实现Select下拉框联动填充Text字段方案

以下方案完全使用Nova原生能力,无需引入任何第三方库,适配Nova 3、Nova 4主流版本。

Nova 4.x 推荐方案(使用原生联动API)

Nova 4及以上版本自带dependsOn联动方法和reactive响应式标记,直接调用即可实现需求:

首先定义你动态获取的选项数组:

$options = [
    100 => "First Option",
    101 => "Second Option",
    102 => "Third Option"
];

字段定义代码如下:

Select::make('Option')
    ->options($options)
    ->reactive(), // 必须加此标记,字段值变化时会触发联动

Text::make('Option Name')
    ->readonly()
    ->dependsOn(
        // 这里填写要监听的字段的数据库字段名,一般为小写蛇形格式
        ['option'],
        function (Text $field, NovaRequest $request, $formData) use ($options) {
            $selectedValue = $formData->option;
            // 选中值存在且在选项数组内时填充对应文本
            $field->setValue(
                isset($selectedValue) && isset($options[$selectedValue])
                ? $options[$selectedValue]
                : ''
            );
        }
    ),

注意事项:

  • 若你的选项数组是动态从数据库/其他接口获取,直接把查询逻辑放在$options定义位置即可,闭包中通过use引入就能正常调用
  • 新建、编辑场景下该联动逻辑都会自动生效

Nova 3.x 兼容方案(内嵌原生JS)

Nova 3版本没有内置联动API,可以通过注入原生JS实现,同样不需要引入第三方依赖:

$options = [
    100 => "First Option",
    101 => "Second Option",
    102 => "Third Option"
];

Select::make('Option')
    ->options($options)
    ->withMeta(['extraAttributes' => [
        'id' => 'custom-option-select'
    ]]),

Text::make('Option Name')
    ->readonly()
    ->withMeta(['extraAttributes' => [
        'id' => 'custom-option-name'
    ]]),

// 注入原生JS脚本实现监听
\Laravel\Nova\Fields\Heading::make('')->asHtml(
    '<script>
        document.addEventListener("DOMContentLoaded", function() {
            const optionMap = ' . json_encode($options) . ';
            const selectEl = document.getElementById("custom-option-select");
            const textEl = document.getElementById("custom-option-name");
            selectEl.addEventListener("change", function() {
                textEl.value = optionMap[this.value] || "";
            });
        });
    </script>'
),

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:09:02