Mindestwert

Harry1

Mitglied
Hallo liebe Gemeinde,

kann mit bitte jemand weiterhelfen? Habe folgenden Befehl:

// Inhalt im Textfeld Beitrag Zeitwert
obj = document.formular.n103032317586;
if(typeof obj != "undefined"){
if (ssum != "") ssum = ssum + '<br><br>';
ssum = ssum + 'Beitrag Zeitwert:';
ssum = ssum + '<br>' + obj.value;

Nun mein Problem: solange nicht ein Mindestwert von z.B. 49,98 erreicht wurde, soll dieser Wert stehen bleiben. Erst wenn dieser Wert überschritten wurde, soll die entsprechend höhere Summe angezeigt werden.

Schon mal vielen Dank!!
LG, Harry
 

Michael...

Top Contributor
Mal abgesehen davon, dass es sich um ein unvollständiges JavaScript (hat nichts mit Java zu tun) handelt, ist hier nichts von einer Variablen mit Mindestwert zu sehen.
...Und verstanden habe ich die Frage auch nicht wirklich.
 

Harry1

Mitglied
ich habe ein Formular erstellt (PHP und JS) in dem irgendwelche Werte addiert werden. Nun kann es aber sein, das ein Kunde den Mindestbetrag nicht erreicht hat und somit soll dann trotzdem der Mindestbetrag von 49,98 angezeigt werden. Hmmm.....hoffe dies war etwas verständlicher

if (parseInt(obj.value) >= 49.98) { ... }

habe ich eben probiert.....klappt leider nicht :-(

LG, Harry
 

faetzminator

Gesperrter Benutzer
"klappt leider nicht" hilft uns nicht sonderlich...
Was passiert?
Werden Fehlermeldungen geworfen?
Was steht in den einzelnen Variablen (mit Debugger prüfen)?
 

Harry1

Mitglied
hier der Code:

function frmCalculate() {
try {
var result="";

var obj103032317579;
obj103032317579 = document.forms[0].n103032317579.value;
obj103032317579 = obj103032317579.replace(/,/,".");
obj103032317579 = parseFloat(obj103032317579);

result=parseFloat(eval(obj103032317579 + "/" + "100" + "*" + "1.25" + "/" + "100" + "*" + "119"));
if (isNaN(result)) {
result="?";
}else{
result=result.toFixed(2);
result=result.replace(".00","");
}
document.forms[0].n103032317561.value=result;

Bekomme ich hier einen Mindestwert reingepastelt?

LG, Harry
 

faetzminator

Gesperrter Benutzer
Wie oben beschrieben. Entweder mit [c]obj103032317579[/c] oder mit [c]result[/c]. Warum heisst dieses Objekt eigentlich so :autsch: ?
 

r.w.

Bekanntes Mitglied
Hallo Harry,

Hallo liebe Gemeinde,

kann mit bitte jemand weiterhelfen? Habe folgenden Befehl:

// Inhalt im Textfeld Beitrag Zeitwert
obj = document.formular.n103032317586;
if(typeof obj != "undefined"){
if (ssum != "") ssum = ssum + '<br><br>';
ssum = ssum + 'Beitrag Zeitwert:';
ssum = ssum + '<br>' + obj.value;

Nun mein Problem: solange nicht ein Mindestwert von z.B. 49,98 erreicht wurde, soll dieser Wert stehen bleiben. Erst wenn dieser Wert überschritten wurde, soll die entsprechend höhere Summe angezeigt werden.

Schon mal vielen Dank!!
LG, Harry


Hab es jetzt nicht probiert. Müsste aber eigentlich in etwa so funktionieren:

Code:
// Inhalt im Textfeld Beitrag Zeitwert
obj = document.formular.n103032317586;
if(typeof obj != "undefined"){
if (ssum != "") ssum = ssum + '<br><br>';
ssum = ssum + 'Beitrag Zeitwert:';
//ssum = ssum + '<br>' + obj.value;
ssum = ssum + '<br>' + (parseFloat(obj.value)>49.98?obj.value:'49,98');
parseFloat() erwartet allerdings einen '.' als Dezimaltrenner. Damit müsstest Du noch testen.

Das Ganze wirkt sich so natürlich nur auf diese Ausgabe und nicht auf weitere Berechnungen aus.

VG ROlf
 
Zuletzt bearbeitet:
P

pmedv.net

Gast
Hallo ich hab die Funktion einmal überarbeitet, nachdem du mit try und catch gearbeitet hast, kann es sein, dass irgendein fehler aufgetreten ist, dieser aber mit try abgefangen wurde. Was bei deinem Code zb gar nicht funktionierte war der Zugriff auf das Formularfeld. Ich bevorzuge bei solchen Sachen die Funktion getElementById

Java:
function frmCalculate() {
			var result="";

			var obj103032317579;
			obj103032317579 = document.getElementById('n103032317579').value;
			obj103032317579 = obj103032317579.replace(/,/,".");
			obj103032317579 = parseFloat(obj103032317579);

			result=parseFloat(eval(obj103032317579 + "/" + "100" + "*" + "1.25" + "/" + "100" + "*" + "119"));
			if (isNaN(result)) {
			result="?";
			}else{
			result=result.toFixed(2);
			result=(parseInt(result) >= 49.98)?result.replace(".00",""):'49,98';
			}
			document.getElementById('n103032317579').value=result;
			}
 

Harry1

Mitglied
habe nun alle Möglichkeiten probiert.....klappt leider nicht. Ich bekomme auch keinerlei Fehlermeldungen. Das Formular funktioniert auf dem Server einwandfrei....bist auf die Sache mit dem Mindestbeitrag. Leider kann ich den ganzen Code hier nicht reinstellen....weil zu groß.
 

faetzminator

Gesperrter Benutzer
Hast du keinen Debugger, mit dem du alles prüfen kannst? Z.B. im Firefox das Plugin Firebug ist wirklich cool. Oder für den IE hab ich M$ Script Debugger (oder so?) - allerdings wird das wohl nicht gratis sein.
 

faetzminator

Gesperrter Benutzer
Es geht nicht ums funktionieren, es geht ums debuggen ;) wenn etwas nicht funktioniert, findet man meistens mit dem Debugger schnell heraus, wo das Problem liegt.
Hast du den Code von pmedv.net kopiert? Dieser funktioniert nicht? Was gibst du denn ein? Vielleicht kann er [c]1,00[/c] (das [c],[/c]) nicht parsen?
 

Harry1

Mitglied
das Formular habe ich mit einem Programm gepastelt. Ich muss gestehen....mit dem Begriff "parsen" kann ich leider nichts anfangen :oops:
Den Code habe ich natürlich schon kopiert und eingefügt.....hat aber leider nicht funktioniert.
Soll ich Dir mal den Link zum Formular schicken.....?

LG, Harry
 

Michael...

Top Contributor
hab zwar immer noch nicht verstanden, wo da was gemacht werden soll, aber vielleicht hilft ja folgendes Bsp. weiter:
HTML:
<html>
<head>
<script type="text/javascript">
function checkValue() {
	inputValue = document.getElementById("ID123").value;
	inputValue = inputValue.replace(",",".");
	if (inputValue>=50) {
		alert(inputValue + " ist groß genug!");
	}
	else {
		alert("Der Wert ist ungültig oder zu niedrig!\nEs wird ein neuer Wert automatisch gesetzt!");
		document.getElementById("ID123").value = 50;
	}
}
</script>
</head>
<body>
	<form action="javascript: checkValue();">
	Bitte einen Wert g&ouml;&szlig;er oder gleich 50 eingeben: <input id="ID123"/>
	</form>
</body>
</html>
 

Harry1

Mitglied
Vielen Dank für Deine Mühe!! Leider ist damit mein Problem nicht gelöst. Es sind auf der Seit zwei Felder zu sehen, einmal den Zeitwert und einmal den Neuwert. In diesen erscheint nach Eingabe des Instrumentenwertes der Beitrag. Es kann sein, dass der angezeigte Beitrag nur z.B. 34,44 anzeigt. Der Mindestbeitrag beträgt allerdings 49,98. Nun möchte ich, dass, solange der Mindestbeitrag von 49,98 nicht erreicht wurde diese Summe fest in diesem Feld steht. Erst wenn der Beitrag über 49,98 liegt soll dieser entsprechend angezeigt werden.....hoffe das war verständlich :autsch:
 

faetzminator

Gesperrter Benutzer
Also, ich weiss nicht wo dein Problem liegt ;)
Hab im Firebug schnell am Anfang im else-Tag (auf deiner Seite) folgendes eingefügt:
Code:
if (result < 49.98) {
  result = 49.98;
}
und tadaaa... im Feld stand der gewünschte Mindestbetrag ;)
 

Harry1

Mitglied
Habe ich natürlich sofort probiert .... bekomme aber nun folgende Fehlermeldung:

Parse error: syntax error, unexpected '=' in /is/htdocs/wp1168373_ZRKT7ELEDZ/www.xxx/125/125.php on line 600
 

Harry1

Mitglied
Erstmal vielen Dank für Eure Hilfe!!!
Nun suche ich schon seit einiger Zeit eine Formel für folgendes Problem:

Zeitwert= 49,98 (funktioniert nun, vielen Dank an faetzminator!)

Neuwert= Zeitwert + 20%

Hat da jemand etwas für mich?

Danke!!

Grüßle, Harry
 

r.w.

Bekanntes Mitglied
Erstmal vielen Dank für Eure Hilfe!!!
Nun suche ich schon seit einiger Zeit eine Formel für folgendes Problem:

Zeitwert= 49,98 (funktioniert nun, vielen Dank an faetzminator!)

Neuwert= Zeitwert + 20%

Hat da jemand etwas für mich?

Danke!!

Grüßle, Harry

Code:
Neuwert = Zeitwert * 1.2

Wobei auch hier vorher bei der Variablen Zeitwert
als Dezimaltrenner das Komma durch den Punkt ersetzt werden müsste.


VG ROlf
 

Neue Themen


Oben