2016-07-05 70 views
0

我有一个问题 - 为什么这段代码不工作?单选按钮'undefined'值

<input type="radio" name="one" value="xxx" onclick="test()"/> 
//below in the same file 
<script> 
    function test() 
    { 
     if (this.value=="xxx") 
     { 
      alert('ok'); 
     } 
    }    
    </script> 

点击单选按钮后没有提示。当我尝试显示单选按钮的值时,它显示'未定义',而不是'xxx' - 为什么?

欢呼

+0

因为需要传递'this'到功能 下面//在同一文件

+0

你这是什么意思? – Piter

+0

@ Domenico Luciani - 谢谢你,先生! – Piter

回答

0
<input type="radio" name="one" value="xxx" onclick="test(this)"/> 
<script> 
    function test(radioItem) 
    { 
     if (radioItem.value=="xxx") 
     { 
      alert('ok'); 
     } 
    }    
    </script> 
0

是表示不确定,因为点击该输入时的函数被调用,但功能没有绑定到输入,所以当它被称为是没有绑定到元素点击,所以点击被触发,但是this未定义。尝试添加的ID的输入,然后将功能结合到点击事件,像这样:

<input id="testDiv" type="radio" name="one" value="xxx" /> 
 

 
<script> 
 
    document.getElementById('testDiv').onclick = function() { 
 
    if (this.value == "xxx") { 
 
     alert('ok'); 
 
     alert(this.value); 
 
    } 
 
    } 
 
</script>