单选按钮在javascript中返回未定义的值

时间:2015-03-15 05:22:57

标签: javascript html

http://jsfiddle.net/jngpjbjm/

查看附带的小提琴链接。单选按钮值返回未定义的值。我不是为什么。请帮忙。

<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);

    }

}
}

4 个答案:

答案 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);
    }
  }
}

onclick

  

因为它本质上是DOM 0的一部分,所以这种方法得到了广泛的支持,并且不需要特殊的跨浏览器代码。因此它通常用于动态注册事件侦听器,除非需要addEventListener()的额外功能。