URL: https://www.overclockers.at/coding-stuff/javascript_feld_mit_fixzahl_multiplizieren_107626/page_1 - zur Vollversion wechseln!
Hallo, ich hätt da ne bitte.
Ich bräucht ein javascript, dass ein feld (<input type='text'...) mit ner fixzahl multipliziert. dies soll ständig passieren (also sobald in das feld ne zahl eingegeben wird, ohne irgendwie auf "multi" drücken zu müssen)
könnte das bitte wer für mich machen? ich hab leider von js keine ahnung
danke im vorraus!
semteX
Wenn du das "instant" machst hast du nur ein Problem: du wirst die Useability ueber den haufen schmeissen, weil der Benutzer dann eine Zahl eingibt und im selben Moment sich der Inhalt aber neu kalkuliert? Das kommt nicht gut an.
Falls dus unbedingt machen musst, kannst du dafuer das onkeyup-Event verwenden. Wenn es reicht dass der Feldinhalt nachtraeglich aktualisiert wird, nimm das onblur-Event. Das feuert dann ab, wenn das Feld den Fokus verliert.
HTH
==> bum
du hast mich soeben abgeschossen
ich hab oben geschrieben, dass ich leider keinen plan von JS habe 
das mit dem "sofort" neu kalkulieren ist keine idee von mir, ist eine art "wunsch", das war auf der page haben will...
Ok, kleines Beispiel:
Wenn du das in der Seite einbaust, etwas eingibst (aber eine Zahl, sonst gibts einen Fehler => keine Typenueberpruefung) und dann den Fokus wegnimmst (sprich, du klickst ausserhalb des Feldes), dann wird der Wert neu kalkuliert. Tataa!Code:<input type="text" onblur="this.value = this.value * 2;">
mhm i glaub ich habs verstanden... mal ausprobiern nachher danke
edit: oder a ned... was muss ich tun um z.b. den wert "extern" angezeigt zu bekommen? also z.b. irgendwo daneben als ganz normalen text?
Ah, die Ueberlegung ist natuerlich schon besser ;-)
Hier gibts auch wieder mehrere Moeglichkeiten.
Die portabelste (== geht in den meisten Browsers) ist wohl, wenn du ein zweites input-Element erzeugst, in dem du die neu kalkulierten Werte darstellst. Mittels dem Attribut disabled kannst du verhindern das der Benutzer dort Daten eingibt:
Nach jedem Tastendruck wird der Wert im zweiten input-Feld neu kalkuliert.Code:<input type="text" onkeyup="document.getElementByID('ergebnis').value = this.value * 13;"> <input id="ergebnis" type="text" disabled="disabled">
Code:<style> #ergebnis { font-weight: bold; } </style> <input type="text" onkeyup="document.getElementByID('ergebnis').innerHTML = "" + (this.value * 13);"> <div id="ergebnis">0</div>
Code:<script language="JavaScript"> var fix = 2; var end; var f = document.formular; function berechnen() { var f = document.formular; end = fix*f.testfeld.value; } </script> <form name='formular' action='ausg.html' method='post'> <Input type='text' name='testfeld' onblur="berechnen()"> <Input type='submit' value='weg mit dem dreck'> </form> <script language="JavaScript"> document.write("<p>" + end + "</p>); </script>
das ist das beste (löscht sogar buchstaben aus den feldern raus, wenn man welche hinschreibt):
made in tomstigs editor 
Code: PHP<html> <body> <script type="text/javascript"> <!-- function rechne(){ document.formular.ergebnis.value = document.formular.zahl.value*document.formular.multiplikator.value; } function CheckNumbers(ort){ eval("var text = document.formular." + ort + ".value;"); if(isNaN(text)){ eval("document.formular." + ort + ".value=eingabe1;"); }else{ eingabe1=text; if(text==""){ text=""; } } rechne(); } // --> </script> <form name="formular"> <input type="text" name="zahl" onkeyup="rechne();CheckNumbers('zahl')"> x <input type="text" name="multiplikator" size="2" onkeyup="rechne();CheckNumbers('multiplikator')" value="2"> = <input type="text" name="ergebnis" readonly> </form> </body> </html>
Code: PHPfunction rechne(feld,preis, anzahl) { var rabatt= preis / 100 * document.formular.eval("rabatt"+feld).value; document.formular.eval("summe"+feld).value = (parseFloat(preis) - rabatt) * anzahl; }
fehler war: eval war völlig falsch eingesetzt
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026