在以下代码段中,fireCheck
捕获了<li>
上的点击并切换了所附的复选框。
在复选框上,我对Click侦听器进行了修改,以阻止事件冒泡至父元素(这可防止封闭<li>
的Click处理程序触发并引发错误),但实际上没有任何内容可以处理复选框的click事件。
<li v-for="datum in data" @click="fireCheck($event)">
<input @click.stop type="checkbox" v-model="datum.checked" v-bind:value="data.name"/>
</li>
我是作为冰雹玛丽来做的,在当前版本的主要浏览器中都不会产生任何错误。这不好吗?
答案 0 :(得分:0)
不好吗?是的,是的,不是。据我所知,您的输入仍然可以通过键盘访问(即使屏幕阅读器无法找到有关该复选框的任何信息),并且您的模型仍然是被动的。
也就是说,您正在重新发明轮子。标签html元素将表单字段与描述链接在一起。它还捕获点击,并根据表单字段的类型来突出显示表单字段,对其进行切换或打开文件对话框。您应该真正使用它而不是自己的实现。
<li v-for="datum in data">
<label>
<span class="screen-reader">{{ datum.name }}</span>
<input type="checkbox" v-model="datum.checked" :value="datum.name">
</label>
</li>