Witam,
Zrobiłem kalkulator z wykorzystaniem prostego eval:
<script>
function oblicz(kalk) {
kalk.wynik.value = eval(kalk.wynik.value)
}
var jeden = '1'
var dwa = '2'
var trzy = '3'
var cztery = '4'
var piec = '5'
var szesc = '6'
var siedem = '7'
var osiem = '8'
var dziewiec = '9'
var zero = '0'
var dodawanie = '+'
var odejmowanie = '-'
var mnozenie = '*'
var dzielenie = '/'
var kropka = '.'
function enter(kalk, string) {
kalk.wynik.value += string
}
function czysc(kalk) {
kalk.wynik.value = '0'
}
</script>
</p>
<form name="calc">
<input size="30" name="wynik" action="oblicz(this.form)"></input>
|
<input onclick="enter(this.form, siedem)" type="button" value=" 7 "></input>
<TD><INPUT onclick="enter(this.form, osiem)" type=button value= " 8 "></INPUT>
<TD><INPUT onclick="enter(this.form, dziewiec)" type=button value= " 9 "></INPUT>
<TD><INPUT onclick="enter(this.form, dzielenie)" type=button value= " / "></INPUT>
|
<input onclick="enter(this.form, cztery)" type="button" value=" 4 "></input>
<TD><INPUT onclick="enter(this.form, piec)" type=button value= " 5 "></INPUT>
<TD><INPUT onclick="enter(this.form, szesc)" type=button value= " 6 "></INPUT>
<TD><INPUT onclick="enter(this.form, mnozenie)" type=button value= " * "></INPUT>
|
<input onclick="enter(this.form, jeden)" type="button" value=" 1 "></input>
<TD><INPUT onclick="enter(this.form, dwa)" type=button value= " 2 "></INPUT>
<TD><INPUT onclick="enter(this.form, trzy)" type=button value= " 3 "></INPUT>
<TD><INPUT onclick="enter(this.form, odejmowanie)" type=button value= " - "></INPUT>
|
<input onclick="enter(this.form, zero)" type="button" value=" 0 "></input>
<TD><INPUT onclick="enter(this.form, kropka)" type=button value= " . "></INPUT>
<TD><INPUT onclick="enter(this.form, dodawanie)" type=button value= " + "></INPUT>
|
<input onclick="oblicz(this.form)" type="button" value=" = "></input>
<TD colSpan=2><INPUT onclick=czysc(this.form) type=button value= " Zeruj "></INPUT>
|
</form></p>
I mam teraz takie pytania:
- Jak zrobić by po wpisaniu z klawiatury jakieś litery wyskakiwał mi alert że nie moge wpisać litery tylko powinienem wpisać liczbe?
Lub inaczej, jak zablokować INPUT żeby nie dało się nic tam wpisać z klawiatury?
- Jak zrobić żeby sprawdzało mi poprawność wpisanego działania? tzn jeśli źle jest wpisane działanie to error np. 2++2 lub 2*/2.
Głównie chciałbym zrobić obsługę zdarzeń błędnych oczywiście na podstawie tego kodu.
Proszę o odpowiedź.
Z góry dziękuję o jakiekolwiek podpowiedzi w formie kodu:)