formular geht nicht

  • Hi,

    ich habe mit Hilfe von Frontpage und HTML ein Formular erstellt, dass auch Rechenfunktionen beinhaltet.

    Im IE und Opera funktioniert es problemlos, aber mit Firefox wird nicht gerechnet.

    Hat jemand eine Idee woran das liegen könnte?

    Vielen Dank
    Annette

  • Zitat

    ich habe mit Hilfe von Frontpage

    das sagt eigentlich schon automatisch dass das mit FF nicht funktioniert ;)

    An deiner Stelle würde ich eine Zeichensatzangabe einfügen und den Spaß erstmal durch den Validator jagen, mal sehen was der so ausspuckt (bin jetzt zu faul nach Fehlern zu suchen...)

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Hi, habe ich jetzt versucht, leider ohne Ergebnis bzw. kommen nur Fehler weil Groß- oder Kleinschreibung nicht erkannt ...
    Bin relativer Laie bzw. habe mir vieles selber angeeignet. Komme so leider nicht weiter.
    Warum funktioniert das Formular im IE und Opera, aber nicht im Firefox?
    Wäre über Hilfe dankbar.
    MfG Annette

  • Ich würd statt:

    Code
    ErgebnisA.value=kaufmRundung(A.value - B.value)

    das

    Code
    document.getElementsByName('ErgebnisA')[0].value=kaufmRundung(document.getElementsByName('A')[0].value - document.getElementsByName('B')[0].value);


    vorschlagen

    Bin nich so der Javascript freak aber ich behaupt einfach mal, formularfelder müssen per document.getElementsByName /ID angesprochen werden

    Naja mit den code den ich vorgeschlagen hab gehts auf jeden fall :)

    Gruß Hannes

    Signaturen sind doof.

  • Wenn der Form-Tag im Stil von
    <form name="myform" action..?>
    deklariert wird lässt sich mit
    window.document.myform.inputname problemlos auf alles darin zugreifen
    document.myform.inputname
    würde auch reichen aber ich ziehe die volle Schreibweise vor

    Linux nb-rhsoft 2.6.25.6-27.fc8 #1 SMP Fri Jun 13 16:38:52

    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061712 Fedora/3.0-1.fc9 Firefox/3.0

    http://www.rhsoft.net/

  • Hi Hannes,

    super, danke :)

    Hatte es jetzt erstmal nur mit der ersten Funktion ausprobiert, da funktioniert es.

    Wenn ich aber alle Zeilen ersetze geht es wieder nicht. Schreibfehler? Klammerfehler? Ich finde nichts :(

    onClick="document.getElementsByName('ErgebnisA')[0].value=kaufmRundung(document.getElementsByName('A')[0].value - document.getElemensByName('B')[0].value)
    document.getElementsByName('ErgebnisB')[0].value=kaufmRundung((document.getElementsByName('C')[0].value * 3.5)/100)
    document.getElementsByName('ErgebnisC')[0].value=kaufmRundung((document.getElementsByName('C')[0].value * 1.5)/100)
    document.getElementsByName('ErgebnisD')[0].value=kaufmRundung(document.getElementsByName('C')[0].value*1 + document.getElementsByName('ErgebnisB')[0].value*1 + document.getElementsByName('ErgebnisC')[0].value*1)
    document.getElementsByName('ErgebnisE')[0].value=kaufmRundung(document.getElementsByName('D')[0].value*1 + document.getElementsByName('E')[0].value*1 + document.getElementsByName('F')[0].value*1)
    document.getElementsByName('ErgebnisF')[0].value=kaufmRundung(document.getElementsByName('ErgebnisA')[0].value*1 + document.getElementsByName('ErgebnisD')[0].value*1 + document.getElementsByName('ErgebnisE')[0].value*1)
    document.getElementsByName('ErgebnisG')[0].value=kaufmRundung(document.getElementsByName('ErgebnisF')[0].value - document.getElementsByName('G')[0].value)
    document.getElementsByName('ErgebnisH')[0].value=kaufmRundung(document.getElementsByName('ErgebnisG')[0].value*document.getElementsByName('H')[0].value/100)
    document.getElementsByName('ErgebnisI')[0].value=kaufmRundung(document.getElementsByName('ErgebnisG')[0].value*document.getElementsByName('I')[0].value/100)
    document.getElementsByName('ErgebnisJ')[0].value=kaufmRundung(document.getElementsByName('J')[0].value*document.getElementsByName('K')[0].value*12)
    document.getElementsByName('ErgebnisK')[0].value=kaufmRundung((document.getElementsByName('ErgebnisJ')[0].value-(document.getElementsByName('ErgebnisA')[0].value*4/100)-document.getElementsByName('ErgebnisH')[0].value)*document.getElementsByName('L')[0].value/100*-1)
    document.getElementsByName('ErgebnisM')[0].value=kaufmRundung((document.getElementsByName('ErgebnisJ')[0].value*1+document.getElementsByName('ErgebnisK')[0].value*1)/document.getElementsByName('ErgebnisF')[0].value*100)
    document.getElementsByName('ErgebnisN')[0].value=kaufmRundung(document.getElementsByName('J')[0].value*document.getElementsByName('K')[0].value*12)
    document.getElementsByName('ErgebnisO')[0].value=kaufmRundung(document.getElementsByName('J')[0].value*document.getElementsByName('K')[0].value*12)
    ">

    Vielleicht sehen 4, 6 oder 8 Augen mehr als 2 ;)

    Vielen Dank
    Annette

  • Formularzugriff funktioniert über window.document.formularname.elementname am einfachsten - Das Orginal-Skript war im Prinzip völlig OK aber window.document. davor hat einfach gefehlt -> IE und Opera lassen dies auch so schlampig zu :)

    <form name="myform" action=" " method="get">
    <input type="text" name="test" value="1" />
    </form>
    <script type="text/javascript">
    alert(window.document.myform.test.value);
    </script>


    Einfach in ein leeres HTML-File kopieren und im FF öffnen, siehe da es geht eine Box mit einer 1 auf :)

    LG
    Harry

    Linux nb-rhsoft 2.6.25.6-27.fc8 #1 SMP Fri Jun 13 16:38:52

    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061712 Fedora/3.0-1.fc9 Firefox/3.0

    http://www.rhsoft.net/

  • Der Fehler ist in der ersten Zeile:

    onClick="document.getElementsByName('ErgebnisA')[0].value=kaufmRundung(document.getElementsByName('A')[0].value - document.getElementsByName('B')[0].value)

  • Hatte ich vorhin vergessen:
    Bei Javascript-Problemen ist die JavaScript-Konsole ganz hilfreich.
    Das nächste Mal einfach das Script anschubsen (also z.B. den Button anklicken)
    und dann schauen, was über Extras/JavaScript-Konsole ausgespuckt wird.