为什么jQuery .change()不会在单选按钮因为同名按钮被选中而取消选中时触发?



如果我有几个相同名称的单选按钮,则每次只能选择一个。当一个人被选中时,任何同名的人都会失去他们的选择。我很好奇为什么这没有构成jQuery的.change()事件。

破解$.change()函数将是相当激烈的,但这似乎并没有作为一个错误报告-所以我很有兴趣找出为什么这不是情况。

下面的测试:我希望这两个更改事件在选择一个单选项时触发,但事实并非如此。

示例如下:http://jsfiddle.net/XzmmW/

如果您考虑一组单选按钮,如select元素,那么为什么不需要为未选中的单选按钮触发更改事件就很清楚了。

当您在select元素中更改所选选项时,您将获得一个更改事件(您不会期望任何其他事件),而不是一个用于先前选择的选项,另一个用于新选择的选项。

正如已经提到的,当一个单选按钮被选中时,同一组中的其他按钮不能被选中,因此触发第二个更改事件是多余的。

还要注意,这不是特定于jQuery的——标准的JavaScript更改事件的工作方式完全相同。

只有一个更改事件…您从"旧选区"更改为"新选区"。

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

不需要为命名组中的每个单选按钮触发事件,当一个被选中时,您知道其他按钮未被选中

最新更新