Hallo,
Ich habe ein Formular, in dem Werte eingetragen werden.
Für jeden Wert gibt es ein Feld, in das absolute Werte eingetragen werden sollen, und ein Feld, in das Veränderungen des absoluten Wertes eingetragen werden können.
Wenn man eine Veränderung eingibt, und mit "Tab" weiterspringt, so soll die Veränderung zu dem absoluten Wert dazugerechenet werden (und gleich angezeigt werden), das Feld der Veränderung soll geleert werden, und der Focus soll zurück auf das Feld mit der Veränderung gesetzt werden (damit man noch eine Veränderung eingeben kann).
So sieht der entsprechende Teil des Quelltexts aus:
<script type="text/javascript">
function calculate (id) {
var wert = (document.getElementById("wert" + id).value >= 0) ? document.getElementById("wert" + id).value : 0;
var ver = document.getElementById("ver" + id).value;
if (ver != "") {
wert = wert - ver;
ver = "";
document.getElementById("wert" + id).value = wert;
document.getElementById("ver" + id).value = ver;
document.forms["odform"].elements["ver" + id].focus();
}
}
</script>
<form name="odform" id="odform" enctype="multipart/form-data" method="post" action="index.php">
<input type="text" id="wert1" name="wert1" size="6" value="">
<input type="text" id="ver1" name="ver1" size="6" onchange="calculate(1)" value="">
<br>
<input type="text" id="wert2" name="wert2" size="6" value="">
<input type="text" id="ver2" name="ver2" size="6" onchange="calculate(2)" value="">
<br>
<input type="submit" value="Senden" name="senden">
</form>
2 Probleme treten dabei auf:
1. Es wird nicht immer richtig gerechnet (mit dem Problem wollte ich mich später befassen, wenn jemand etwas dazu sagen möchte, freue ich mich dennoch darüber (für Kommata habe ich immer einen Punkt benutzt)).
2. Der Focus wird nicht gesetzt. Wenn ich in das Feld "ver1" etwas eingebe, und dann mit "Tab" weiterspringe, wird zwar (falsch) gerechnet, und das Feld "ver1" wird auch geleert, doch der Focus landet auf dem Feld "wert2", und nicht auf "ver1".
Gewünschte Browser-Unterstützung: mindestens IE und FF
Ich wäre euch sehr dankbar, wenn ihr mir bei meinem Problem helfen könntet!
MfG, Bart