Noch eine kleine Frage, wie kann ich ein Textfeld also <input> nur zum anzeigen von Werten einrichten?
Sprich es soll für manuelle Einträge gesperrt sein.
Kann ich in JS eine Parameter Übergabe machen? Ich habe eine Funktion geschrieben und möchte diese 7 mal verwenden.
Bisher habe ich den einzelnen Variablen durch den Pfade einen Wert gegeben. Also wenn ich das nach dem alten Schema mache, müsste ich die Funktion 7 mal schreiben, immer mit andern Variablen und das ist ja nicht elegant.
Noch eine letzte Frage. Gibt es so was ähnliches wie onclick aber ohne click. Also die Werte sollen sofort sichtbar sein und sich verändern wenn ich einen Wert ändere (ohne Button). Ich habe natürlich schon gegooglet und onload gefunden aber das funktioniert nicht ganz^^
Und das Problem ist, ich muss immer erst den MwSt-Satz ändern damit es was berechnet. Sonst steht da immer: NaN. Das liegt doch an dem onchange oder? Was wäre eine gute Alternative wenn ich will das die Werte schon ohne Änderung gelten sollen.
Du könntest auf jedes der Eingabefelder (Menge, Produkt, MwSt) ein onchange-Event definieren, welches immer die selbe Funktion aufruft, die jetzt schon beim MwSt aufgerufen wird.
Andererseits könntest du mit onload bereits gemachte Eingaben (z. Bsp. aus einer Datenbank) direkt am Anfang schon rechnen lassen.
Open Source --> Programmieren aus Leidenschaft
Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
Das erste habe ich schon versucht und ich muss trotzdem was verändern damit es klappt und da ich keine Datenbank habe geht es wohl nicht anders zu schade.
Bitte poste mal den Quellcode. Ich werde irgendwie immer noch nicht schlauer aus deiner Frage :). Also du hast die Tabelle und machst eine Eingabe. Du gibst bei Anzahl 1 ein. Dann gibt er schon ein Ergebnis aus. Wenn du dann das Produkt oder die MwSt. veränderst, dann ändert er auch das Ergebnis.
Oder willst du bei den leere Feldern als Ergebnis 0 stehen haben?
Open Source --> Programmieren aus Leidenschaft
Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
Nicht erschrecken wenn du die Funktion siehst^^ Hab das mit den Parametern noch nicht richtig verstanden. Muss mich damit am Wochenende nochmal beschäftigen, wenn ich wieder Zeit habe.
Du musst EP() respektive EPn(), wobei n = 1 bis 6, als erste Funktion aufrufen, da die andere Funktionen auf das Einzelpreisfeld zugreifen. Im ersten Durchlauf ist dort aber noch kein Wert, deswegen kommt am Ende NaN heraus.
Beispiel:
oh man ich hab die Reihenfolge ganz vergessen, mein Fehler.
Gibt es eine Möglichkeit, mir den gesamt Betrag anzeigen zu lassen wenn ich nur die ersten zwei Bestellungen ausfülle. Da steht ja immer noch NAN. Der Defaultwert ist ja 0. also sollten die 4 übrigen Bestellungen 0 sein.
Du musst die Eingabefelder auf Inhalt prüfen und dann entweder den eingegebenen Wert in die Berechnung mit einfließen lassen, oder du weißt der entsprechenden Variable 0 zu.
So funktioniert es z. Bsp.:
Quellcode
function Last()
{
var wert1 = (this.document.Produktbestellung.betrag1.value != "") ? this.document.Produktbestellung.betrag1.value : 0.0;
var wert2 = (this.document.Produktbestellung.betrag2.value != "") ? this.document.Produktbestellung.betrag2.value : 0.0;
var wert3 = (this.document.Produktbestellung.betrag3.value != "") ? this.document.Produktbestellung.betrag3.value : 0.0;
var wert4 = (this.document.Produktbestellung.betrag4.value != "") ? this.document.Produktbestellung.betrag4.value : 0.0;
var wert5 = (this.document.Produktbestellung.betrag5.value != "") ? this.document.Produktbestellung.betrag5.value : 0.0;
var wert6 = (this.document.Produktbestellung.betrag6.value != "") ? this.document.Produktbestellung.betrag6.value : 0.0;
function chkMenge ()
{
if (document.Produktbestellung.menge1.value == "")
{
alert("Bitte geben Sie die Menge ein!");
document.Produktbestellung.menge1.focus();
return false;
}
var chkZ = 1;
for (i = 0; i < document.Produktbestellung.menge1.value.length; ++i)
if (document.Produktbestellung.menge1.value.charAt(i) < "0"
document.Produktbestellung.menge1.value.charAt(i) > "9")
chkZ = -1;
if (chkZ == -1)
{
alert("Menge ist keine Zahl!");
document.Produktbestellung.menge1.focus();
return false;
}
}