• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Numericbox Werte in TExtbox addieren

vierkant

New member
Hallo!
Ich habe eine Number Box und eine Textbox

Nun hätte ich gerne wenn sich der Inhalt der Numberbox verändert dies in die Textbox geschrieben wird:

Nummernbox Werte von 1 - 15 = Textbox "0"
Nummernbox Werte ab 16 = Textboxtext "Textbox.text +10"

Steh da voll auf dem Schlauch, hab auch schon a bissl was rum gepfuscht aber ich komm einfach nicht drauf! Könnte mir vielleicht jemand einen Codeschnipsel spendieren? Wäre sehr nett!

Lg
 
Zuletzt bearbeitet von einem Moderator:
Hallo! Hier mal mein Kläglicher Versuch - der natürlich nicht funktionierte:
HTML:
 <script>
       
  document.getElementById('umfang').onchange = function() {
    if ( document.getElementById('umfang').value < '16') {
   Seitenumfangkosten.value = '0';
 
    } 
};    
    document.getElementById('umfang').onchange = function() {
    if ( document.getElementById('umfang').value > '15') {
   Seitenumfangkosten.value = Seitenumfangkosten.value + '10';
        
    } 
};   
        
    </script>
   
		<script>
function show(id) {
    if(document.getElementById) {
        var mydiv = document.getElementById(id);
        mydiv.style.display = (mydiv.style.display=='block'?'none':'block');
    }

Es funktioniert ja nicht mal der 1. Teil (bei dem in die Textbox "0" eingetragen werden muss)

Bitte um Hilfe!

Lg Jürgen
 
Schau mal in die Fehlerkonsole.

so ohne (HTML-)Kontext können wir da auch nicht viel sagen.

PS. mir ist jetzt kein Browser bekannt, der document.getElementById() nicht unterstützt.

- - - Aktualisiert - - -

Ansonsten bliebe noch die Frage, wo Seitenumfangkosten definiert wird.

- - - Aktualisiert - - -

zusätztlich wird der change-handler überschrieben.
 
Die Problematik (denke ich zumindest) ist, das ihm meine Abfragen wurst sind!

HTML:
if ( document.getElementById('umfang').value < '16') {
   Seitenumfangkosten.value = '0';
Es werden auch die "10" dazu gezählt obwohl der Wert in "umfang" kleiner als 16 ist

- - - Aktualisiert - - -

Hab nun was anderes versucht, leider auch dieser Weg ohne Erfolg:
HTML:
<div id="frage">
			Wieviel Seiten?
		</div>
		<div id="auswahl">
            <input type="number" id="umfang" name="size" value='1'/>    Seiten</br>
			
 Seiten</br>
            
			
			    Kosten: 
		  		<div id="kosten">
			  		<input type="text" id="Seitenumfangkosten" value="0" readonly = true/>€
				</div>
			
		</div>

<script>
        
        
           document.getElementById('umfang').onchange = function() {
    if ( document.getElementById('umfang').value > '15') {
   Seitenumfangkosten.value = parseFloat(Seitenumfangkosten.value)+'10';
    } else {
        
   Seitenumfangkosten.value = '0';
        
    }
}; 
  
    
        
    </script>

Bitte um Hilfe! Was mach ich falsch??
 
2 Sachen.
1) du verläßt dich auf das automatische ID-Mapping, das mal vom IE eingeführt wurde
2) + führt nur dann eine mathematische Addition durch, wenn beide Operanden vom Typ Number sind
 
Du vergleichst im if zwei Strings. Das ergibt ganz andere Ergebnisse als wenn man Zahlen vergleicht. So ist "2" > "10". Du musst den .value durch parseFloat jagen und die Anführungsstriche bei 16 entfernen.
 
Zurück
Oben