查看附带的小提琴链接。单选按钮值返回未定义的值。我不是为什么。请帮忙。
<input type="radio" name="arv" value="1">1
<br>
<input type="radio" name="arv" value="2">2
var radio = document.getElementsByName('arv');
radio[0].addEventListener('click', check());
radio[1].addEventListener('click', check());
function check() {
for (var i = 0; i < radio.length; i++) {
var rcheck = radio[i].checked;
if (!rcheck) {
alert(rcheck.value);
}
}
}
答案 0 :(得分:2)
试试这个:http://jsfiddle.net/jngpjbjm/3/
应该是:
alert(radio[i].value);
也许你需要这样的东西?
function check() {
alert( event.target.value );
}
http://jsfiddle.net/jngpjbjm/9/
答案 1 :(得分:1)
我试图从原始脚本中删除所有过多的代码,因为它们是不必要的(有点),剩下的是最基本的东西。谢谢@mplungjan
试试这个:
var radio = document.getElementsByName('arv');
// here is how to add event listeners like the pros over at MDN
radio[0].addEventListener('click', check, false);
radio[1].addEventListener('click', check, false);
function check(e) {
//simply grab the event by passing it as "e" and capturing its target.value
var rcheck = e.target.value;
alert(rcheck);
}
答案 2 :(得分:0)
使用此
var radio = document.getElementsByName('arv');
radio[0].addEventListener('click', check);
radio[1].addEventListener('click', check);
function check() {
for (var i = 0; i < radio.length; i++) {
var rcheck = radio[i].checked;
if (!rcheck) {
alert(radio[i].value);
}
}
}
答案 3 :(得分:0)
此版本适用于所有浏览器。
window.onload=function() {
var radios = document.getElementsByName('arv');
for (var i=0;i<radios.length;i++) {
radios[i].onclick=function() {
alert(this.value);
}
}
}
因为它本质上是DOM 0的一部分,所以这种方法得到了广泛的支持,并且不需要特殊的跨浏览器代码。因此它通常用于动态注册事件侦听器,除非需要addEventListener()的额外功能。