• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Taschenrechner kettenrechnung?

Status
Für weitere Antworten geschlossen.

mimbob

Neues Mitglied
Hi ich hab mal wieder ein Problem mit meinem TR und zwar funktioniert bisjetzt zwar das addieren und subtrahieren, aber nur wenn ich zum beispiel klicke, 2 + 3 =, wenn ich aber beispielsweise klicke 4 + 5 + 3 eingebe, kommt 8 raus er kann also keine Kettenrechnung oder wie man das nennt.

Hier der Code:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Taschenrechner</title>
<meta name="author" content="...">
<meta name="editor" content="html-editor phase 5">
 
<script language="JavaScript">
Z1=0;
Z2=0;
function Zahl (taste)
{
document.getElementById('eg').value=document.getElementById('eg').value+taste;
}
function ft_operator (oper)
{
operator=oper;
Z1=1*document.getElementById('eg').value;
document.getElementById('eg').value="";
}
function add (a,b)
{
y=a+b;
return y;
}
function sub (a,b)
{
y=a-b;
return y;
}
function rechnen ()
{
Z2=1*document.getElementById('eg').value;
if (operator=="+")
{
document.getElementById('eg').value=add (Z1,Z2);
operator=0;
}
if (operator=="-")
{
document.getElementById('eg').value=sub (Z1,Z2);
operator=0;
}
}
<!--
//-->
</script>
<noscript></noscript>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<p align="center">
 
<input type="Text" name="" value="" id="eg" style="text-align:right; width:230px;" size="" maxlength=""><br>
<br>
<input type="button" name="" value=" 7 " style="width:60px; text-align:center;" size="" onclick="Zahl('7')" maxlength="">
<input type="button" name="" value=" 8 " style="width:60px; text-align:center;" size="" onclick="Zahl('8')" maxlength="">
<input type="button" name="" value=" 9 " style="width:60px; text-align:center;" size="" onclick="Zahl('9')" maxlength="">
<input type="button" name="" value=" + " style="width:40px; text-align:center;" onclick="ft_operator('+')" size="" maxlength=""><br>
<input type="button" name="" value=" 4 " style="width:60px; text-align:center;" size="" onclick="Zahl('4')" maxlength="">
<input type="button" name="" value=" 5 " style="width:60px; text-align:center;" size="" onclick="Zahl('5')" maxlength="">
<input type="button" name="" value=" 6 " style="width:60px; text-align:center;" size="" onclick="Zahl('6')" maxlength="">
<input type="button" name="" value=" - " style="width:40px; text-align:center;" onclick="ft_operator('-')" size="" maxlength=""><br>
<input type="button" name="" value=" 1 " style="width:60px; text-align:center;" size="" onclick="Zahl('1')" maxlength="">
<input type="button" name="" value=" 2 " style="width:60px; text-align:center;" size="" onclick="Zahl('2')" maxlength="">
<input type="button" name="" value=" 3 " style="width:60px; text-align:center;" size="" onclick="Zahl('3')" maxlength="">
<input type="button" name="" value=" * " style="width:40px; text-align:center;" onclick="ft_operator('*')" size="" maxlength=""><br>
<input type="button" name="" value=" 0 " style="width:60px; text-align:center;" size="" onclick="Zahl('0')" maxlength="">
<input type="button" name="" value=" = " style="width:124px; text-align:center;" onclick="rechnen()" size="" maxlength="">
<input type="button" name="" value=" / " style="width:40px; text-align:center;" onclick="ft_operator('/')" size="" maxlength=""><br>
</p>
</body>
</html>
Kann mir jemand helfen damit das funzt? Danke im vorraus

Mod-Edit: JavaScript, AJAX und DHTML (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
Was meinst du mit Tags? Weiß grad nicht was das ist sry!:oops:

ok habs verbessert
 
Zuletzt bearbeitet von einem Moderator:
Ich habe mal ein wenig dran gebastelt.

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Taschenrechner</title>

<style type="text/css">
#calculator {
    text-align: center;
    }
#calculator input#eg {
    text-align: right;
    width: 230px;
    }
#calculator input.number {
    width: 60px;
    text-align: center;
    }
#calculator input.operator {
    width: 40px;
    text-align: center;
    }
#calculator input.equals {
    width: 124px;
    text-align: center;
    }
</style>

<script type="text/javascript">
//<![CDATA[
/** Wert der ersten Zahl */
var _z1 = 0;

/** Ist die erste Zahl gesetzt */
var _z1IsDefined = false;

/** Anzuwendender Operator */
var _operator = '';

/** Inhalt von #eg mit neuer Eingabe überschreiben? */
var _egOverwrite = false;

function numberOnclick(taste)
{
    var eg = document.getElementById('eg');

    if (eg.value == '0' || _egOverwrite) {
        eg.value = taste;
        _egOverwrite = false;
    } else {
        eg.value += taste;
    }
}

function operatorOnclick(operator)
{
    var eg = document.getElementById('eg');

    if (!_z1IsDefined) {
        _z1          = parseFloat(eg.value);
        eg.value     = '0';
        _z1IsDefined = true;
    } else {
        _z1      = calculate(_operator, _z1, parseFloat(eg.value));
        eg.value = _z1;
    }

    _operator = operator;
}

function equalsOnclick()
{
    if (!_z1IsDefined) return;

    var eg = document.getElementById('eg');

    _z1          = calculate(_operator, _z1, parseFloat(eg.value));
    eg.value     = _z1;
    _z1IsDefined = false;
}

function calculate(operator, a, b)
{
    _egOverwrite = true;

    switch (operator) {
        case '+':
            return a + b;
            break;
        case '-':
            return a - b;
            break;
        case '*':
            return a * b;
            break;
        case '/':
            return a / b;
            break;
        default:
            break;
    }

    alert('Fehler: Unbekannter Operator');
    return -1;
}

window.onload = function()
{
    /* GUI initialisieren */

    var inputs = document.getElementsByTagName('input');

    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == 'button') {
            if (inputs[i].className == 'number') {
                inputs[i].onclick = function() { numberOnclick(this.value); }
            } else if (inputs[i].className == 'operator') {
                inputs[i].onclick = function() { operatorOnclick(this.value); }
            } else if (inputs[i].className == 'equals') {
                inputs[i].onclick = function() { equalsOnclick(); }
            }
        }
    }

    document.getElementById('eg').value = '0';
}
//]]>
</script>
</head>
<body>

<p id="calculator">
    <input type="text" id="eg" /><br />
    <br />
    <input type="button" class="number"   value="7" />
    <input type="button" class="number"   value="8" />
    <input type="button" class="number"   value="9" />
    <input type="button" class="operator" value="+" /><br />
    <input type="button" class="number"   value="4" />
    <input type="button" class="number"   value="5" />
    <input type="button" class="number"   value="6" />
    <input type="button" class="operator" value="-" /><br />
    <input type="button" class="number"   value="1" />
    <input type="button" class="number"   value="2" />
    <input type="button" class="number"   value="3" />
    <input type="button" class="operator" value="*" /><br />
    <input type="button" class="number"   value="0" />
    <input type="button" class="equals"   value="=" />
    <input type="button" class="operator" value="/" />
</p>

</body>
</html>
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben