1

我正在使用YUI3Internet Explorer 8 和 Firefox。我正在尝试确定单选按钮何时更改了选择。

我的 HTML:

<div id="test">
     <input name="test1" value="a" type="radio">
     <input name="test1" value="b" type="radio">
     <input name="test1" value="c" type="radio">
</div>

我的 JavaScript:

YUI().use('event', 'node', function (Y) {
     Y.one('input[name=test1]').on('change', function (e) {
          alert('changed');
     });
});

这不起作用,因为在单选按钮组中未选择页面加载任何内容。当我选择第一个项目时,没有任何反应,没有弹出警报。当我单击第二个按钮时,它会弹出。如何确定单选按钮选择何时更改?

另外我如何获得所选单选按钮的值,我认为有 IE 问题?这会爆炸:

var value = Y.one('input[name=test1]:checked').get('value');
alert(value);

这什么也没带回来:

var value = Y.all('input[name=test1]:checked').get('value');
alert(value);
4

1 回答 1

2

您可以使用事件委托来监听“点击”事件。如果您不知道什么是事件委托,请查看这个简短的介绍。更改事件在旧浏览器中存在问题,因此请坚持点击事件。您需要做的就是获取父元素Y.one并设置委托侦听器:

YUI().use('node', function (Y) {
  Y.one('#test').delegate('click', function (e) {
    alert(e.target.get('value'));
  }, 'input[type=radio]');
});
于 2013-03-04T15:03:16.740 回答