【问题标题】:Event for radio button being selected?选择单选按钮的事件?
【发布时间】:2010-09-21 14:05:03
【问题描述】:

单选按钮被选中是否有一些事件?

我知道我可以使用“单击”,但我相信可以在某些浏览器中设置单选按钮的样式,这样单击单选按钮的外部区域可能不会选择单选按钮。

我应该使用什么事件?

【问题讨论】:

  • 您好,点击始终适用于所有浏览器。我不明白您的意思是外部区域...您是否想激活点击事件,即使是标签?

标签: javascript jquery


【解决方案1】:

这取决于您希望何时获知该事件。

如果您想立即知道,请使用click。 IE 在调用处理函数之前会更新checked 的状态,我认为其他浏览器也是如此。您可能需要仔细检查,因为我现在只能使用 IE。

如果您只需要在其他事情发生之前知道,您可以使用change。 IE 不会触发change 事件,直到选中的单选按钮失去焦点。 FF/chrome/others 可能会在不改变焦点的情况下触发事件,但我相信 IE 在这种情况下实际上是正确的。

【讨论】:

  • 这个答案有点过时了。 input 现在是更好的选择。
【解决方案2】:

您可以使用onchange 事件,该事件将在单选选项更改时触发(即第一次单击组中的单选按钮或更改组中的选择时)。

查看http://jsfiddle.net/P9Z9Y/1/ 的简单示例(如果单选组的值发生变化,单击标签或单选按钮本身将触发alert)。

【讨论】:

  • 请注意,这只会在 IE 中在输入失去焦点时触发。单击按钮只会保持其焦点。之后您想在其他地方单击/tab 让它失去焦点,从而触发 change 事件。
  • @Balus 这不是 Firefox 或 Chrome 中的单选按钮的情况(单选按钮上的 onchange 会在单击更改单选组值时立即触发,即使单击关联的 <label>,请参阅我更新的 jsfiddle)。我这里没有更新版本的 IE 可供测试。
  • 或者 IE(回到第 4 版)、NN 4.x、Safari、Opera,甚至是 Lotus Notes 客户端。对于键盘可编辑的字段,可以,但不能用于单选按钮。
  • 顺便说一下在 IE11 上找到的作品(耶,五年的改进)
  • (虽然 onclick 也可以,至少在这种情况下)
【解决方案3】:

您是否尝试过使用 onchange 事件?

【讨论】:

    【解决方案4】:

    不确定input 事件有多新,但它通常是最好的选择。处理键盘导航等。立即更新。

    https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2012-06-25
      相关资源
      最近更新 更多