2015-11-29 2 views
1

Привет, только из образовательной цели, я пытался сделать несколько вещей с помощью своего калькулятора, я попытался заставить дисплей изменить цвет в зависимости от результата, это ближайший я пришел, но он просто показывает красный цвет, независимо от результата, и что еще мне нужно добавить?javascript calculator input background

<script> 
function checkNum() { 
var x = document.kalk.disp.value; 
if (x.match(/[a-zA-Z]+/)) { 
    kalk.disp.value=("Endast siffror!"); 
    kalk.disp.style.background = "red"; 
} else { 
    kalk.disp.value = eval(x); 
    (eval.value===0) 
    kalk.disp.style.background = "green"; 
    (eval.value>=1) 
    kalk.disp.style.background = "blue"; 
    (eval.value<=-1) 
    kalk.disp.style.background = "red"; 
} 
} 
</script> 

вот HTML-

<form name="kalk"> 
<input type="text" name="disp" > 
<br> 
<input type="button" value="7" OnClick="kalk.disp.value+='7'"> 
<input type="button" value="8" OnClick="kalk.disp.value+='8'"> 
<input type="button" value="9" OnClick="kalk.disp.value+='9'"> 
<input type="button" value="*" OnClick="kalk.disp.value+='*'"> 
<br> 
<input type="button" value="4" OnClick="kalk.disp.value+='4'"> 
<input type="button" value="5" OnClick="kalk.disp.value+='5'"> 
<input type="button" value="6" OnClick="kalk.disp.value+='6'"> 
<input type="button" value="-" OnClick="kalk.disp.value+='-'"> 
<br> 
<input type="button" value="1" OnClick="kalk.disp.value+='1'"> 
<input type="button" value="2" OnClick="kalk.disp.value+='2'"> 
<input type="button" value="3" OnClick="kalk.disp.value+='3'"> 
<input type="button" value="+" OnClick="kalk.disp.value+='+'"> 
<br> 
<input type="button" value="C" OnClick="kalk.disp.value=''"> 
<input type="button" value="0" OnClick="kalk.disp.value+='0'"> 
<input type="button" value="." OnClick="kalk.disp.value+='.'"> 
<input type="button" value="=" OnClick="checkNum()" > 
</form> 

его в основном это, что я добавил

(eval.value===0) 
kalk.disp.style.background = "green"; 
(eval.value>=1) 
kalk.disp.style.background = "blue"; 
(eval.value<=-1) 
    kalk.disp.style.background = "red"; 
+0

то, что 'document.kalk.disp.value' должен быть? –

+0

Несколько вещей здесь не кажутся, но без соответствующего html я не могу дать никаких значимых предложений. –

+0

@JaromandaX я отредактировал сообщение –

ответ

0

Вы используете Eval неправильно.

Вам нужны некоторые, если-заявления или что-то вроде этого:

function checkNum() { 
    var x = document.kalk.disp.value; 
    if (x.match(/[a-zA-Z]+/)) { 
     kalk.disp.value = ("Endast siffror!"); 
     kalk.disp.style.background = "red"; 
    } else { 
     var result = eval(x); 

     kalk.disp.value = result; 
     if (result > 0) { 
      kalk.disp.style.background = "blue"; 
     } else if (result === 0) { 
      kalk.disp.style.background = "green"; 
     } else { 
      kalk.disp.style.background = "red"; 
     } 

    } 
} 

fiddle

0
function checkNum() { 
var x = document.kalk.disp.value; 
if (x.match(/[a-zA-Z]+/)) { 
    kalk.disp.value = ("Endast siffror!"); 
    kalk.disp.style.background = "red"; 
} else { 
    var result = eval(x); 

    kalk.disp.value = result; 
    if (result > 0) { 
     kalk.disp.style.background = "blue"; 
    } else if (result === 0) { 
     kalk.disp.style.background = "green"; 
    } else { 
     kalk.disp.style.background = "red"; 
    } 

}