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

Svelte MUI Select组件on:change事件绑定失效问题求助

解决SMUI Select组件onChange事件未触发的问题

问题原因

SMUI(Svelte Material UI)的Select组件并未直接转发原生change事件,而是通过自定义的SMUI:change事件来通知选择状态变化。你当前绑定的on:change监听的是原生DOM事件,但组件内部不会触发该原生事件,因此处理函数无法执行。

修复方案

将事件绑定从on:change替换为on:SMUI:change即可触发事件处理函数:

修改后的完整代码

<script type="ts">
    import Select, { Option } from '@smui/select';

    const onChange = () => {
        console.log('on change!');
    };

    let fruits = ['Apple', 'Orange', 'Banana', 'Mango'];

    let value = 'Orange';
</script>

<div>
    <Select bind:value label="Select Menu" on:SMUI:change={onChange}>
      {#each fruits as fruit}
        <Option value={fruit}>{fruit}</Option>
      {/each}
    </Select>

    <pre class="status">Selected: {value}</pre>
</div>

额外补充

如果需要获取选中的具体值,可以在事件处理函数中读取事件对象的detail属性,其中包含选中项的相关信息:

const onChange = (event: CustomEvent) => {
    console.log('选中的值:', event.detail.value);
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:00:02