Vue: 当 v-model 为 false 时复选框显示已选中

创建于 2016-04-08  ·  3评论  ·  资料来源: vuejs/vue

我开始走这条路是因为在更新 v-model 之前触发了@click (例如:http://jsfiddle.net/5sH6A/308/)
所以我不知道价值是什么。 我想我会在 watch: function 中尝试我的逻辑,但发现了下面的问题。

Vue.js 版本

1.0.16

复制链接

http://jsfiddle.net/5sH6A/303/

重现步骤

单击复选框并选择取消

什么是预期的?

复选框应为空

实际发生了什么?

绑定数据为假时复选框显示已选中

最有用的评论

这个聚会很晚了——但这些年来对我来说仍然是一个活生生的问题。 我的解决方案:
当使用带有 v-model 的复选框输入时,请使用 onchange @change处理程序。 适用于 IE 和合理的浏览器。

奇怪的是,如果您使用 v-model 复选框和@click ,您的 v-model 属性的值(例如,“flgChecked”)将在 Chrome/Firefox 点击处理程序中反转。 也就是说,当您将复选框单击到 on 位置时为 false,当您将其单击到 off 位置时为 true。 所以——反过来。 但 IE 实际上报告“正确”。 所以 。 . . 使用@change。

或者,也许我只是错过了一些东西。

所有3条评论

这似乎与兼容性有关。
它适用于 Windows 10 上的 Edge 12 和 IE11,但与 chrome 49.0.2623.110 不兼容
它还在 open suse 飞跃上与 Firefox 41 中断

在观察者中设置相同的值总是一个坏主意......

我想说解决这个问题的最简单方法就是不使用v-model 。 无论如何,您都在尝试自己控制价值:http: //jsfiddle.net/yyx990803/5sH6A/310/

这个聚会很晚了——但这些年来对我来说仍然是一个活生生的问题。 我的解决方案:
当使用带有 v-model 的复选框输入时,请使用 onchange @change处理程序。 适用于 IE 和合理的浏览器。

奇怪的是,如果您使用 v-model 复选框和@click ,您的 v-model 属性的值(例如,“flgChecked”)将在 Chrome/Firefox 点击处理程序中反转。 也就是说,当您将复选框单击到 on 位置时为 false,当您将其单击到 off 位置时为 true。 所以——反过来。 但 IE 实际上报告“正确”。 所以 。 . . 使用@change。

或者,也许我只是错过了一些东西。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

finico picture finico  ·  3评论

fergaldoyle picture fergaldoyle  ·  3评论

aviggngyv picture aviggngyv  ·  3评论

WolfgangFellger picture WolfgangFellger  ·  3评论

bfis picture bfis  ·  3评论