input type=radio,name=change有两个这样的单选框,每选择一次都触发一个事件,默认选中第一个,默认选中时也要触发一次时间,vue3代码实现
时间: 2024-10-13 17:12:01 浏览: 22
在Vue3中,你可以使用`v-model`配合`@input`自定义事件来实现这种单选按钮的行为。首先,你需要创建一个Vue组件,并给每个单选按钮绑定`value`属性表示它们的状态,同时设置默认值。然后,在模板里使用`<input>`标签,并附上对应的`type="radio"`和`name="change"`:
```html
<template>
<div>
<label v-for="(option, index) in options" :key="index">
<input type="radio" :value="option.value" v-model="selectedOption" @input="handleRadioChange">
<span>{{ option.label }}</span>
</label>
<p>当前选择:{{ selectedOption }}</p>
</div>
</template>
<script>
export default {
data() {
return {
options: [
{ value: 'option1', label: '默认选项1' }, // 默认选中项
{ value: 'option2', label: '选项2' },
],
selectedOption: this.options[0].value,
};
},
methods: {
handleRadioChange(event) {
// 当用户手动选择或者默认选中时触发此事件
console.log('单选框状态改变:', event.target.value);
},
},
};
</script>
```
在这个例子中,当你切换单选按钮或首次加载页面时(因为数据已经预设了默认值),`handleRadioChange`方法会被自动调用一次。`v-model`双向绑定会确保`selectedOption`的数据同步到输入字段。
阅读全文