Html 如何使具有相同值的单选按钮可重复使用?
我是Vue的初学者,在实践中学习。我能够使复选框可重复使用,但单选按钮得到了一些奇怪的结果。 我在Html 如何使具有相同值的单选按钮可重复使用?,html,vue.js,vuejs2,Html,Vue.js,Vuejs2,我是Vue的初学者,在实践中学习。我能够使复选框可重复使用,但单选按钮得到了一些奇怪的结果。 我在ProgramDesign.vue中有数组格式的数据: data(){ 返回{ 战略:[ “不重要”, “稍微重要”, “中等重要”, “非常重要”, “极其重要”, ], }; }, 这些选项在每个问题上都会重复。 我为收音机制作了一个单独的组件,如下所示: {{策略} 导出默认值{ 道具:{ 组:数组, }, }; 这就是它在程序设计.vue中的使用方式: 第一个问题在这里 第二个问题在这
ProgramDesign.vue
中有数组格式的数据:
data(){
返回{
战略:[
“不重要”,
“稍微重要”,
“中等重要”,
“非常重要”,
“极其重要”,
],
};
},
这些选项在每个问题上都会重复。
我为收音机制作了一个单独的组件,如下所示:
{{策略}
导出默认值{
道具:{
组:数组,
},
};
这就是它在程序设计.vue中的使用方式:
第一个问题在这里
第二个问题在这里
我能够得到可重用的输出,但是当我点击第二个问题的单选按钮时,第一个问题的按钮被选中。如何解决此问题?问题在于输入
ID和名称在组件实例之间不是唯一的,这可以从两个RadioButton
组件的呈现中看出(为简洁起见简化):
不重要
不重要
每个标签
通过匹配for
和id
属性链接到输入
,这样单击标签
会导致链接的无线电输入
更改值。当存在多个具有相同标识符的输入
时,浏览器会将标签
链接到第一个匹配的输入
,从而导致您观察到的行为
名称
在组之间也必须是唯一的(RadioButton
实例),因为浏览器会创建具有匹配名称的输入
的单选组
解决方案
或者,可以通过将输入
放在标签
内,解析id
/进行复制(并提高可读性),链接标签
和输入
:
不重要
解决重复的name
s的一种方法是根据每个实例递增的计数器来确定名称:
{{策略}
设groupId=0
导出默认值{
道具:{
组:数组
},
数据(){
返回{
groupId:groupId++
}
}
}
谢谢@tony19。这是我能得到的最好的答案。使我更清楚地了解了标签
和输入
之间的联系,并且效果非常好。