2016-07-05 111 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>