javascript - 手动或以编程方式单击时与 Prop ('checked' 不一致)

标签 javascript jquery checkbox

我遇到了 jQuery 1.7.2/1.8.2 的问题(没有测试早期版本),prop('checked') 似乎正在返回不一致的值(value)观。

我有 2 个未选中的复选框:

<input id="input1" type="checkbox"/>
<input id="input2" type="checkbox"/>​

当我在 ready 上调用 $('#input1').click() 时,prop('checked') 给我 。当我手动点击 #input2 时,我得到了 trueI've created a jsFiddle showing the problem .

我希望 prop('checked') 方法在 click 事件处理程序中以一致的方式返回数据,无论它是如何触发的,这不会好像不是这样。

我错过了什么吗?这是一个已知的错误?是否有一种解决方法可以在 click 处理程序中拥有一致的 .prop('checked') 数据,无论它是如何触发的?

PS:我已经使用 FF 15.0.1Chrome 21.0.1180jQuery 1.7.2 和 1.8.2 进行了测试。无论我使用 .click( 还是 .on('click'

最佳答案

不一致行为的原因是 .click() 与实际单击元素之间的差异。实际上单击它会更改 checked 状态,而 .click() 只会执行 jQuery 绑定(bind)的处理程序。

所以点击元素会改变它是否被选中,然后告诉你新的状态,而使用触发机制只会告诉你以前存在的状态。

关于javascript - 手动或以编程方式单击时与 Prop ('checked' 不一致),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565193/

相关文章:

jQuery 下一个/上一个按钮在 IE7 中不能正常工作

javascript - 无法使禁用按钮工作

javascript - jQuery 和 Javascript 更改复选框的选中属性?

javascript - 无法在 ReactJS 中重复使用复选框功能

javascript - 用javascript设置Dropdownlist选定索引?

javascript - 从 https 调用 http 时访问被拒绝

javascript - 如何为库脚本使用多个CDN?

javascript - 我如何使用带有 Javascript 的 Rest API 插入到 MongoDB?

javascript - Storybook 无法从从根目录后面的任何位置导入的目录中解析 JSX

javascript - 检测 Bootstrap Switch Jquery 中的类更改(将工作复选框 JS 转换为按钮 JS)