我正在使用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);
答案 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]');
});