Ergebnis 1 bis 12 von 12
  1. #1
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    [JS] Kalkulator problem

    Hallo Leute,


    habe schon die Suche benutzt, konnte aber nichts richtiges finden, vielleicht könnt ihr mir weiterhelfen?

    Folgendes, ich habe ein javascript was die Feldeingaben prüft und Alarm "alert" ausgibt und ein "replace" macht wenn das Feld kleiner als 50 ist und größer als 310.

    Das funktioniert auch wunderbar, der Standart Wert ist 100. Wenn ich jetzt einen anderen Wert eingeben möchte wie z.B. 55 so kriege ich schon bei der Zahl 5 den alert und meine Zahl wird mit replace auf 100 geändert.

    Quellcode:
    Code:
    function EvalMinMax(bShowAlert){
    	var aIATTR = new Array();
    	var iLfdNrIATTR = 1;
    	var EvalForm = document["IATTR" + SMProductPDD.getAttribute(_SMAUniqueID)];
    	var sLabelID1 = "LBL_IATTR" + SMProductPDD.getAttribute(_SMAUniqueID) + "_";
    	if(EvalForm!=null){
      		for(var i=1; i<EvalForm.elements.length; i++){
    		  var EvalElem = EvalForm.elements[i];
      	 	if(EvalElem.type=="text"){
      	 		EvalElem.value = KillStrings(EvalElem.value);
      	 		aIATTR[iLfdNrIATTR] = new Array();
      	 		aIATTR[iLfdNrIATTR][0] = parseFloat(EvalElem.value.replace(/,/g,"."));
      	 		if(!EvalNumber(aIATTR[iLfdNrIATTR][0]) && !EvalElem.value.length==0){
      	 			if(bShowAlert)alert("Bitte geben Sie nur Zahlen ein!");
      	 			return(false);
      	 		};
      	 		aIATTR[iLfdNrIATTR][1] = EvalElem.id;
      	 		aIATTR[iLfdNrIATTR][2] = document.getElementById(sLabelID1 + EvalElem.id).innerHTML;
      	 		var aEvalCont = aIATTR[iLfdNrIATTR][2].split("min-max");
      	 		if(aEvalCont.length > 1){
      	 			for(var j=0; j<aEvalCont.length; j++){
      	 			  aEvalCont[j] = aEvalCont[j].replace("(","");
      	 			  aEvalCont[j] = aEvalCont[j].replace(")","");
      	 			  aEvalCont[j] = aEvalCont[j].replace(":","");
      	 			  aEvalCont[j] = aEvalCont[j].replace(/ /g,"");
      	 			  aEvalCont[j] = aEvalCont[j].replace(/,/g,".");
      	 			};
      	 			var aMinMax = aEvalCont[1].split("-");
      	 			aIATTR[iLfdNrIATTR][3] = RemoveTags(aEvalCont[0]," ");
      	 			aIATTR[iLfdNrIATTR][4] = parseFloat(aMinMax[0]);
      	 			aIATTR[iLfdNrIATTR][5] = parseFloat(aMinMax[1]);
      	 			if(aIATTR[iLfdNrIATTR][0]<aIATTR[iLfdNrIATTR][4]){
      	 				var aMin = String(EvalElem.value.replace(/,/g,".")).split(".");
      	 				var aVal = String(aIATTR[iLfdNrIATTR][4]).split(".");
      	 				if(parseFloat(aMin[0])<parseFloat(aVal[0])){
      	 					if(bShowAlert)
      	 					EvalElem.value = String(aIATTR[iLfdNrIATTR][4]).replace(".",",");
      	 					EvalElem.focus();
      	 					return(false);
      	 				};
      	 				if(aMin.length>1 && aVal.length>1){
      	 					if(aMin[1].length==0) aVal[1] = "-1";
      	 					if(parseFloat(aMin[1])<parseFloat(aVal[1])){
      	 						if(bShowAlert)
      	 						EvalElem.value = String(aIATTR[iLfdNrIATTR][4]).replace(".",",");
      	 						EvalElem.focus();
      	 						return(false);
      	 					};
      	 				};
      	 			};
      	 			if(aIATTR[iLfdNrIATTR][0]>aIATTR[iLfdNrIATTR][5]){
      	 				if(bShowAlert)
      	 				EvalElem.value = String(aIATTR[iLfdNrIATTR][5]).replace(".",",");
      	 				EvalElem.focus();
      	 				return(false);
      	 			};
      	 		};
      	 		iLfdNrIATTR++;
      	 	};
      	};
      	return(true);
     	}else{
     		return(true);
     	};
    };
    Ich bedank mich jetzt schonmal für eure Hilfe

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: [JS] Kalkulator problem

    Würd es dir was ausmachen, den Code auf den relvanten Teil deiner Frage zu kürzen?

  3. #3
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    AW: [JS] Kalkulator problem

    Nö, der Code ist normal 570 Zeilen lang... Und wurde schon auf die funktion gekürzt. Ich kürze es aber für dich gerne noch ein Stück Oben wären halt die replace befehle noch mit drinnen gewesen.

    Also hier dein gewünschter relevanter teil.

    Code:
    var aMinMax = aEvalCont[1].split("-");
      	 			aIATTR[iLfdNrIATTR][3] = RemoveTags(aEvalCont[0]," ");
      	 			aIATTR[iLfdNrIATTR][4] = parseFloat(aMinMax[0]);
      	 			aIATTR[iLfdNrIATTR][5] = parseFloat(aMinMax[1]);
      	 			if(aIATTR[iLfdNrIATTR][0]<aIATTR[iLfdNrIATTR][4]){
      	 				var aMin = String(EvalElem.value.replace(/,/g,".")).split(".");
      	 				var aVal = String(aIATTR[iLfdNrIATTR][4]).split(".");
      	 				if(parseFloat(aMin[0])<parseFloat(aVal[0])){
      	 					if(bShowAlert)alert('Ihre Eingabe für "' + aIATTR[iLfdNrIATTR][3] + '" ist zu klein.');
      	 					EvalElem.value = String(aIATTR[iLfdNrIATTR][4]).replace(".",",");
      	 					EvalElem.focus();
      	 					return(false);
      	 				};
      	 				if(aMin.length>1 && aVal.length>1){
      	 					if(aMin[1].length==0) aVal[1] = "-1";
      	 					if(parseFloat(aMin[1])<parseFloat(aVal[1])){
      	 						if(bShowAlert)alert('Ihre Eingabe für "' + aIATTR[iLfdNrIATTR][3] + '" ist zu klein.');
      	 						EvalElem.value = String(aIATTR[iLfdNrIATTR][4]).replace(".",",");
      	 						EvalElem.focus();
      	 						return(false);
      	 					};
      	 				};
      	 			};
      	 			if(aIATTR[iLfdNrIATTR][0]>aIATTR[iLfdNrIATTR][5]){
      	 				if(bShowAlert)alert('Ihre Eingabe für "' + aIATTR[iLfdNrIATTR][3] + '" ist zu groß.');
      	 				EvalElem.value = String(aIATTR[iLfdNrIATTR][5]).replace(".",",");
      	 				EvalElem.focus();
      	 				return(false);
    Geändert von Master_P (30-03-2009 um 14:05 Uhr)

  4. #4
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: [JS] Kalkulator problem

    Zitat Zitat von Master_P Beitrag anzeigen
    Also hier dein gewünschter relevanter teil.
    Der zur Lösung Deines Problems halt nur nicht sonderlich hilfreich ist. Denn der tatsächlich relevante Code ist immer noch nicht enthalten.

    Aber wenn der Mindestwert 50 ist und Du bei einer 5 schon eine Meldung kriegst, dann solltest Du Dein Skript erst dann loslaufen lassen, wenn der Benutzer die Zahl komplett eingegeben hat, anstatt bei jeder Änderung.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  5. #5
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    AW: [JS] Kalkulator problem

    Zitat Zitat von Albu Beitrag anzeigen
    Der zur Lösung Deines Problems halt nur nicht sonderlich hilfreich ist. Denn der tatsächlich relevante Code ist immer noch nicht enthalten.

    Aber wenn der Mindestwert 50 ist und Du bei einer 5 schon eine Meldung kriegst, dann solltest Du Dein Skript erst dann loslaufen lassen, wenn der Benutzer die Zahl komplett eingegeben hat, anstatt bei jeder Änderung.
    Hallo,

    habe mal den Code hochgeladen; nopaste.info - free nopaste script and service.

    Wie kann man das realisieren, das die überprüfung erst nach der eingabe gestartet wird?

  6. #6
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: [JS] Kalkulator problem

    Du musst doch in der Lage sein, wennn du so ein Skript schreibst, den relevanten Teil zu isolieren???

  7. #7
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    AW: [JS] Kalkulator problem

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Du musst doch in der Lage sein, wennn du so ein Skript schreibst, den relevanten Teil zu isolieren???
    Aber jetzt glaub ichs langsam? Sorry aber halt dich in zukunft hier bitte raus! Deine stupiden Kommentare kannst du dir echt sparen, kein wunder warum du 8.000+ postings hast. Und ausserdem hab ich nie behauptet das programmiert zu haben, hätte ich das würde ich hier nicht um Hilfe fragen.

    Danke.

    mfg ap

  8. #8
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: [JS] Kalkulator problem

    Zitat Zitat von Master_P Beitrag anzeigen
    Aber jetzt glaub ichs langsam? Sorry aber halt dich in zukunft hier bitte raus!
    Gerne. Ich will ja nichts von dir.

  9. #9
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: [JS] Kalkulator problem

    Zitat Zitat von Master_P Beitrag anzeigen
    Wie kann man das realisieren, das die überprüfung erst nach der eingabe gestartet wird?
    Naja als erstes solltest Du Dir klar machen, was tatsächlich passiert, und wer denn wann Deine Funktion aufruft. Dazu solltest Du einfach mal im Quelltext nach dem Namen der Funktion suchen. Du dürftest drei Stellen finden: Die Funktion selbst und zwei Event-Handler.
    Bei SelfHTML dürfte zu beiden was zu finden sein. Dort findet sich dann auch ein möglicher Ersatz.
    Ob dieser ausreicht oder nicht, musst Du selbst entscheiden, das Umschreiben des Skriptes auf eine zentrale Prüffunktion vor dem Abschicken des Formulars ist da sicherlich komplexer.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  10. #10
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    AW: [JS] Kalkulator problem

    Ich denke ich bin mir da im klaren, korrigier mich falls ich da falsch liege.

    Wenn Eingabe dann check if Einzelzahl kleiner als 50 == alert && replace if else zahl größer als 310 dann alert und wenn zahl kleiner als 310 ist == true.

    Das sind die drei stellen, ich kann zwar nicht so sonderlich gut JS aber wie kann man den Check auf 2 zahlen ausweiten?

    Nichts ist zu komplex - alles eine Frage der Zeit, wenn es nötig ist hock ich mich die ganze Nacht ran bis ich eine Lösung hab.

  11. #11
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: [JS] Kalkulator problem

    Zitat Zitat von Master_P Beitrag anzeigen
    Das sind die drei stellen, ich kann zwar nicht so sonderlich gut JS aber wie kann man den Check auf 2 zahlen ausweiten
    Dein Editor hat tatsächliche diese Stellen ausgespuckt, als Du ihn nach dem Funktionsnamen hast suchen lassen? Dann muss er kaputt sein.

    Zu Deinem neuen Vorhaben mindestens zwei Zahlen zu prüfen. Was machst Du, wenn jemand 150 eingeben will? Dann ist es eins, fünf => Peng, statt nur fünf => Peng!
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  12. #12
    Master_P ist offline Grünschnabel
    registriert
    30-03-2009
    Beiträge
    6

    AW: [JS] Kalkulator problem

    Zitat Zitat von Albu Beitrag anzeigen
    Dein Editor hat tatsächliche diese Stellen ausgespuckt, als Du ihn nach dem Funktionsnamen hast suchen lassen? Dann muss er kaputt sein.

    Zu Deinem neuen Vorhaben mindestens zwei Zahlen zu prüfen. Was machst Du, wenn jemand 150 eingeben will? Dann ist es eins, fünf => Peng, statt nur fünf => Peng!
    Richtig, Danke!

    Dann ist die Lösung, das Formular beim Absenden zu prüfen wohl oder übel die beste?

    Ich lese nebenbei noch etwas mit "onclick" Re: Formular vor dem absenden berprfen- JavaScript - www.spotlight-wissen.de und JavaScript / Anwendungsbeispiele / Formulareingaben überprüfen.

    Muss ich direkt mal testen.

Ähnliche Themen

  1. [JS] Bestimmtes Select-Feld per JS auswählen
    Von DirkHo im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 30-05-2007, 11:12
  2. [JS] "DHTML Tip Message" mit Bildvorschau?
    Von zweiform im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 10-12-2005, 09:11
  3. Antworten: 7
    Letzter Beitrag: 21-11-2005, 20:24
  4. [js] clock einbauen + 3 verschiedene zeitzonen
    Von anett im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 26-01-2005, 08:23
  5. Antworten: 3
    Letzter Beitrag: 01-12-2004, 16:31

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •