确定单选按钮选择何时因YUI3而改变

时间:2013-03-04 10:34:47

标签: javascript html html5 javascript-events yui

我正在使用YUI3和Internet 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);

1 个答案:

答案 0 :(得分:2)

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

YUI().use('node', function (Y) {
  Y.one('#test').delegate('click', function (e) {
    alert(e.target.get('value'));
  }, 'input[type=radio]');
});