Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 29 von 29
Like Tree2Likes

Thema: Prüfen, ob Formularfelder befüllt; wenn-dann...

  1. #16
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.627

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Ich bin mir ziemlich sicher, dass auch in PDFs .value einen String zurückliefert. Da du ja aber mit Zahlen arbeiten willst (du willst rechnen), muss das irgendwie umgewandelt werden. Das versucht die JS-Engine in deinem Fall automatisch zu machen. Wenn die Strings aber leer sind, kann das nicht als Zahl interpretiert werden und deswegen kommt "[bN[/b]ot a Number" raus.

    Um das unschöne "NaN" im Feld zu vermeiden kannst du dem Programm direkt sagen, was passieren soll, wenn ein Feld leer ist:
    Code:
    	var RabEing = parseFloat(getField("RabEing").value) || 0;
    PS: es kann passieren, dass du in deinem Code durch Null teilst. Das solltest du auch abfangen.

    EDIT: Mist - vergessen zu aktualisieren...

  2. #17
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Vielen Dank für die Erklärung!
    Das teilen durch bzw Abfangen der Null hab ich schon bei hesst nicht ganz verstanden - ist das in Deinem Beispiel durch "... || 0" schon getan?
    Danke für die Unterstützung.

  3. #18
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.627

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Nein - das ist nur eine kürzere Schreibweise für hessts isNaN Abfrage (nicht exakt das gleiche, hat hier aber das gleiche Ergebnis).

  4. #19
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    AU Backe, Mathe war immer mein schlechtestes Fach...
    ich werd dran knobeln und berichten (glaube aber nicht dass mich mit der Division durch Null weit komme - wie fängt man sowas ab?)

    Danke weiterhin!!

  5. #20
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Sorry ich krieg das echt nicht hin mit der Division durch Null...
    Wie kann ich diesen Fall abfangen? Er liegt ja so lange vor, bis die Gesamtsumme irgendwann nicht mehr null ist (z.B. wenn die Leute noch am Ausfüllen der Adresse sind - nach jedem Wechsel ins nächste Formularfeld kommt eine Warnmeldung, dass der Wert des Feldes "RabProz" nicht mit dessen Format übereinstimmt...

    Sobald die Gesamtsumme mal über 0 ist, geht die Meldung weg.

    Habt Ihr eine Lösung wie ich das Feld "RabProz" dahingehend entschärfe?
    Nochmal in Kürze, die Rechenformel des Feldes ist wie folgt:

    RabProz / (Gesa - AufT - VerS) * 100

    d.h. ich teile immer durch 0 wenn die Gesamtsumme noch 0 ist.

  6. #21
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.583

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Und wenn du einfach (Gesa - AufT - VerS) * 100 auf 0 vorher abfragst?

  7. #22
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.627

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    ... das "* 100" bräuchte man in der Abfrage gar nicht beachten.

  8. #23
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Ich kapituliere!

    Ich lese stundenlang auf selfhtml u.a. über parseFloat(), Objektabfragen usw. aber es könnte genauso gut Chinesisch sein.
    Kurz gesagt: Ich bin zu bled dafür! Ich durchdringe das Thema nicht, mein Hirn ist für sowas nicht geschaffen.
    (Brauche ich ja eigentlich nicht darauf hinzuweisen weil es für jeden von Euch offensichtlich ist... )

    Also irgendwie muss ich wohl dieses "Null"-Problem auszuhebeln.

    var name = ""; // hier wird die Eventualität vorbereitet, dass das Ergebnis der Berechnung 0 sein könnte.
    if (!name) // das bedeutet "wenn das Ergebnis NICHT null ist, dann....

    ich finde so viele verschiedene Schnipsel und kann sie nicht zuordnen...

    Letztendlich sehe ich mich nicht in der Lage, das auf meinen Fall anzuwenden oder auch überhaupt irgendwie sinnvoll zusammen zu bringen.
    Ich werde es wohl einfach pro Fall von Hand ausrechnen und eintragen bei der Rechnungskorrektur.

    Sorry, und trotzdem danke für die Hilfe soweit!

  9. #24
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Es lässt mich doch noch nicht los...
    Es tut noch nicht, aber macht das Sinn und kann das was werden:

    Code:
    var ZwDig = parseFloat(getField("ZwDig").value);
    var Zwsum = parseFloat(getField("Zwsum").value);
    var Rabatt = parseFloat(getField("Rabatt").value);
    var name = ("");
    
    ZwDig = isNaN(ZwDig) ? 0 : ZwDig;
    Zwsum = isNaN(Zwsum) ? 0 : Zwsum;
    Rabatt = isNaN(Rabatt) ? 0 : Rabatt;
    
    if (!name)
    { Rabatt / (ZwDig + Zwsum) *100}
    Habe das ganze etwas umgestellt; die Errechnung des Prozentwerts speist sich diesmal aus den folgenden Feldern:

    ZwDig = Zwischensumme Digitalbilder (dieser Wert wird aus anderen Feldern errechnet und kann ggf. 0 bzw. leer sein)
    Zwsum = Zwischensumme Abzüge (dieser Wert wird aus anderen Feldern errechnet und kann ggf. 0 bzw. leer sein)
    Rabatt = Dieser Wert wird ggf. händisch eingetragen (in Zahlen, ggf. mit 2 Dezimalen); ist standardmäßig leer

  10. #25
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.627

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Nein, da hast du was falsch verstanden. Das ist eigentlich ganz einfach:
    Code:
    var ZwDig = parseFloat(getField("ZwDig").value);
    var Zwsum = parseFloat(getField("Zwsum").value);
    var Rabatt = parseFloat(getField("Rabatt").value);
    
    ZwDig = isNaN(ZwDig) ? 0 : ZwDig;
    Zwsum = isNaN(Zwsum) ? 0 : Zwsum;
    Rabatt = isNaN(Rabatt) ? 0 : Rabatt;
    
    if (ZwDig + Zwsum !== 0){
    	event.value = Rabatt / (ZwDig + Zwsum) *100;
    }
    else {
    	event.value = "";
    }
    (hab' jetzt wieder das mit den event.value reingebaut, da es oben drin war - ich selbst habe noch nie mit JS in PDFs gearbeitet).

    PS: Dezimalzahlen sind so eine Sache... denn JS kann als Dezimalzeichen nur den Punkt. Wo soll das denn eingesetzt werden? In Deutschland? dann werden die Meisten da ein Komma eintragen und nicht das erwünschte Ergebnis bekommen. Schau' dir dazu mal STRING.replace() an.
    Rudelgurke likes this.

  11. #26
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Danke!
    Ich bau's bei nächster Gelegenheit rein und schaue wie es klappt.

    Vielen Dank für die Mühe.

  12. #27
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Habe großen Respekt für jeden der die Mittel einer Programmiersprache versteht und damit was sinnvolles anfangen kann.
    Für mich faszinierend, und definitiv jenseits meiner Möglichkeiten.

    Einen riesengroßes Dankeschön an kkapsner! Es klappt wie gewünscht. Du hast mir sehr weitergeholfen.

  13. #28
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.627

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Bitte - gern geschehen.

    Ich hoffe trotzdem, dass du deine Möglichkeiten hierbei erweitern konntest.

  14. #29
    Rudelgurke ist offline Jungspund
    registriert
    07-10-2013
    Beiträge
    16

    AW: Prüfen, ob Formularfelder befüllt; wenn-dann...

    Auf jeden Fall. Ich glaube nicht dass aus mir je ein großer Programmierer wird, aber ich hab schon was dazu gelernt und finde das Thema spannend. Wird sicher nicht das letzte Mal sein dass ich mich mit einem derartigen Code rumschlagen muss.

    Danke nochmal.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. wenn dann & sonst
    Von amithedog im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 15-10-2012, 17:00
  2. [php] Formularfelder je nach auswahl einblenden und Prüfen?
    Von ~red~ im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 17-02-2011, 23:04
  3. Wenn Minuszahl dann rot.
    Von powl0r im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 26-10-2009, 10:05
  4. [JS]Formularfelder auf inhalt prüfen
    Von ancient.shadow im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 08-12-2005, 17:43
  5. Formularfelder auf Existenz prüfen
    Von steven im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 09-03-2002, 10:24

Stichworte

Lesezeichen

Berechtigungen

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