为什么 jQuery 的 .change() 事件在取消选择单选按钮时不会触发,而是在选择同名单选按钮时触发?

7
如果我有几个同名的单选按钮,每次只能选择一个。当其中一个被选中时,其他同名的将失去选择。我很好奇为什么这不构成jQuery的.change()事件。
修改$.change()函数可能是相当激进的行为,但似乎并没有报告这个问题,所以我很想知道为什么会这样。
下面是测试:我期望两个更改事件在单选按钮被选中时都会触发,但事实并非如此。
以下是示例:http://jsfiddle.net/XzmmW/
3个回答

12
如果把一组单选按钮看作一个元素中更改所选选项时,你会得到一个change事件(你不会期望得到其他结果),而不是一个用于先前所选选项和另一个用于新选择的选项。
正如已经提到的那样,当选择一个单选按钮时,同一组中的其他按钮都不能被选择,因此触发第二个change事件就显得多余了。
此外,请注意这不仅适用于jQuery -标准JavaScript change事件也以完全相同的方式工作。

3

只有一个变更事件... 你从 "旧选项" 改为了 "新选项"。

记住,尽管你有多个 "元素",它们都是同一个表单元素的一部分(由 name 属性定义)。


2

在一个命名组中,每个单选按钮都不需要触发事件,当其中一个被选择时,你就知道其他的都没有被选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接