2013-10-13 57 views
0

它可能真的很愚蠢,即時消息做,但我搜索了很多,爲我的生活我沒有得到什麼是錯的(網頁設計/編程新)。而且我知道它應該在文本框失去焦點時觸發,但它沒有。Onchange不會着火?

<html> 
<head> 
<title>ask9</title> 

<script> 
function changeColor(){ 

var x=document.getElementById("box").value; 
if(isNaN(x)==false) 
{ 
    body.style.backgroundColor="yellow"; 
} 
else if(isNaN(x)==true) 
{ 
    body.style.backgroundColor="green"; 
} 
else 
{ 
    body.style.backgroundColor="red"; 
} 
} 
</script> 
</head> 
<body> 


    <input type="text" id="box" onchange="changeColor()"> 

</body> 
</html> 
+0

在未來你可以調試使用[JavaScript錯誤控制檯(HTTP這樣的問題: //www.netmagazine.com/tutorials/javascript-debugging-beginners)。 – JJJ

回答

3

body沒有定義 - 你大概的意思document.bodydocument.getElementsByTagName('body')[0] - 看到這樣的jsfiddle:http://jsfiddle.net/LrrpM/

<html> 
<head> 
<title>ask9</title> 
<script> 
function changeColor() { 
    var x=document.getElementById("box").value; 
    if(isNaN(x)==false) 
    { 
     document.body.style.backgroundColor="yellow"; 
    } 
    else if(isNaN(x)==true) 
    { 
     document.body.style.backgroundColor="green"; 
    } 
    /* // will never occur, isNaN() always returns a boolean 
    else 
    { 
     document.body.style.backgroundColor="red"; 
    }*/ 
} 
</script> 
</head> 
<body> 
    <input type="text" id="box" onchange="changeColor()"> 
</body> 
</html> 
+0

我曾經使用過它,並且它在 – user2874565

+0

之前有效body.style.backgroundColor = document.getElementById(「box」).value;我在一個函數中做了這個,它工作...爲什麼? – user2874565

+0

@ user2874565:如果你做了'var body = document.body'之類的東西,那麼它會起作用。 –