Javascript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javascript

    Habe ein Formular bei dem wenn ein Radiobutton auf Ja angeklickt ist
    beim absenden des Formulars ein Popup aufgehen soll, in dem weitere Daten abgefragt werden, die ebenfalls mit versendet werden sollen.
    Wer könnte mir bei diesem Javascript helfen, da ich selber kein Javascript kann. Ist ziemlich dringend da es für einen Kunden ist.

  • #2
    wie üblich nichts getestet, aber sollte es tun.
    Zur Not gib in der Schleife die f[i].type erstmal per alert aus.

    parent.html:
    Code:
    <form name="parentform">
      <input type="hidden" name="popupwert" value="">
      <input type="radio" onClick="if(this.checked)window.open('popup.html');">
    </form>
    popup.html:
    Code:
    <script language="javascript"><!--
      function popdown(f)
      {
         for(i=0; i<f.length; i++)
           if(f[i].type!='button')
           {
             v = f[i].type=='select'
               ? f[i].options[f[i].selectedIndex].value
               : f[i].value
             );
             eval('parent.forms.parentform.elements.'
              +f[i].name+'.value=v;');
           }
        window.close();
      }
    //--></script>
    <form>
      <input type="text" name="popupwert">
      <input type="button" value="ok" onClick="popdown(this.form.elements);
    </form>
    Dabei muss für jedes Nicht-Button-Element im Popup-Formular ein hidden field im Eltern-Formular existieren.
    multi-selects sind extra zu behandeln, einfache selects sollten in allen Browsern funktionieren. Hast du keine selects, kann das 'v= ...' weg und im eval 'v' durch 'f[i].value' ersetzen.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Gibt mir einen Syntaxfehler hatte es so übernommen wie du geschrieben hast. Da fehlt eine Klammer

      v = f[i].type=='select'
      ? f[i].options[f[i].selectedIndex].value
      : f[i].value
      );

      Du hast nur eine schließende drin wo muß ich die öffnende hinsetzen so?

      v = (f[i].type=='select'
      ? f[i].options[f[i].selectedIndex].value
      : f[i].value
      );


      In das Popup sollen nur eingabefelder für Größe, Gewicht und Schuhgröße

      habe also den Bereich im eval ersetzt

      Kommentar


      • #4
        wie/wo kann ich die Größe des Fenster festlegen soll ja nur ein kleines sein

        Kommentar


        • #5
          window.open("datei.htm","Fenster1","width=310,height=400,left=0,top=0");

          Kommentar


          • #6
            Da bekomme ich einen Fehler wenn ich das da reinschreibe

            <input style="border:0;" type="radio" name="Material" value="Ja" onClick="if(this.checked)window.open('index.cfm?SEI_ID=82','Ihre Maßangaben für Leihmaterial','width=310,height=400,left=0,top=0');">

            Ungültiges Argument

            Kommentar


            • #7
              parent.forms.parentform ist Null oder kein Objekt

              Kommentar


              • #8
                mh.. semikolon irgendwo vergessen, wird ein wert nicht übergeben ??

                gruss

                Kommentar


                • #9
                  das Ganze sieht jetzt folgender maßen aus

                  popup

                  <script language="javascript"><!--
                  function popdown(f)
                  {
                  for(i=0; i<f.length; i++)
                  if(f[i].type!='button')
                  {
                  v = (f[i].type=='select'?f[i].options[f[i].selectedIndex].value:f[i].value);
                  eval('parent.forms.parentform.elements.'+f[i].name+'.f[i].value;');
                  }
                  window.close();
                  }
                  //--></script>
                  <cfform name="Skikurse" action=post>
                  <table border="0" cellpadding="0" cellspacing="0">
                  <tr><td>Größe (cm) :</td><td><cfinput type="text" name="groesse" size="15" required="yes" message="Bitte füllen Sie das Feld 'Größe' aus."></td></tr>
                  <tr><td>Schuhgröße :</td><td><cfinput type="text" name="schuhgroesse" size="15" required="yes" message="Bitte füllen Sie das Feld 'Schuhgröße' aus."></td></tr>
                  <tr><td>Körpergewicht :</td><td><cfinput type="text" name="gewicht" size="15" required="yes" message="Bitte füllen Sie das Feld 'Körpergewicht' aus."></td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><input type="button" value="ok" onClick="popdown(this.form.elements);"></td></tr></table>
                  </cfform>

                  stör dich nicht an dem cf vor den inputs oder der Form das gehört zu ColdFusion

                  andere Datei ist auch eine Form namens Skikurse
                  Habe dort hidden input-Felder

                  Material: <input type="hidden" name="groesse" value=""><input type="hidden" name="schuhgroesse" value=""><input type="hidden" name="gewicht" value=""><input style="border:0;" type="radio" name="Material" value="Ja" onClick="if(this.checked)window.open('index.cfm?SEI_ID=82');">Ja <input style="border:0;" type="radio" name="Material" value="Nein" checked>Nein

                  Kommentar


                  • #10
                    hmm irgendwie macht er jetzt kein Popup mehr auf vor hatte ich nur ein hiddenfeld da hat er die Fehlermeldung geschmissen jetzt wo ich die drei hiddenfelder habe passiert nix mehr

                    Kommentar


                    • #11
                      so jetzt kommt das Popup wieder aber immer noch die Fehlermeldung wenn ich die Daten abschicken will...

                      Kommentar


                      • #12
                        Original geschrieben von Aroree
                        parent.forms.parentform ist Null oder kein Objekt
                        hmpf. ich doof. Mach mal opener.forms.parentform draus.
                        Wenns dann noch nicht will: opener.parentform
                        mein Sport: mein Frühstück: meine Arbeit:

                        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                        Kommentar


                        • #13
                          jup geht, jetzt müßte ich nur noch wissen wie ich das Fenster kleiner machen kann, das was Fatal geschrieben hat bringt ne Fehlermeldung...

                          Kommentar


                          • #14
                            dann schau mal ins selfhtml; da sind alle Parameter für window.open ausführlich beschrieben.
                            mein Sport: mein Frühstück: meine Arbeit:

                            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                            Kommentar


                            • #15
                              ok hat alles geklappt... *freu*

                              Kommentar

                              Lädt...
                              X