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

Yii2 KartikV Color Input如何获取不同输入框的选中颜色值

KartikV Color Input绑定颜色变更实现画布动态换色

1. 给所有颜色输入框加统一标识类

先修改Yii2里的Color Input组件配置,给每个输入框的options添加共同的class,方便后续统一绑定事件。示例中两个字段的修改如下:

// head_skin_scars字段的widget配置
'options' => ['placeholder' => '   ', 'class' => 'skin-color-input'],

// face_skin_scars字段的widget配置
'options' => ['placeholder' => '   ', 'class' => 'skin-color-input'],

2. 绑定颜色变更事件

KartikV的Color Input基于bootstrap-colorpicker,自带changeColor事件,可直接用来捕获颜色选择操作。假设你的绘图脚本用currentDrawColor变量存储当前绘图颜色,对应的jQuery代码如下:

// 初始化默认绘图颜色(可选)
let currentDrawColor = 'black';

// DOM加载完成后绑定事件
$(document).ready(function() {
    $('.skin-color-input').on('changeColor', function(e) {
        // 因配置中preferredFormat为name,直接取颜色名称
        currentDrawColor = e.color.name;
        // 若绘图脚本需即时更新颜色,在此调用你的颜色更新方法
        // 示例:updateDrawingColor(currentDrawColor);
    });
});

关键说明

  • 无论用户从调色板点选颜色,还是手动输入颜色值,changeColor事件都会触发,确保颜色值实时同步。
  • 若需要十六进制格式的颜色值(如#ff0000),可将e.color.name替换为e.color.toHex(),或者调整组件pluginOptions里的preferredFormat为'hex'。
  • 这段代码需放在DOM加载完成后执行,要么包裹在$(document).ready()中,要么通过Yii2的$this->registerJs()方法注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:15:55