[JavaScript] neues uploadfeld anzeigen lassen

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

  • [JavaScript] neues uploadfeld anzeigen lassen

    Hallo leute.

    Ich habe für ein Portal einen Bilderupload geschrieben.
    dort werden jetzt standart mäßig 10 upload felder untereinanderangezeigt:

    Code:
    <input name="picture[]" type="file" size="50" />
    nun würde ich gerne darunter einen link oder ein schaltfläche setzen, die sagt: ein Feld hinzufügen.

    die soll nun eine javascript funktion aufrufen (onClick oder per javascript: link) die mir dann ein neues uploadfeld zwischen den link und das letzte feld schreibt.. (so wie bei den G-Mail Mailanhangfeldern)

    jemand eine idee wie ich das realisieren könnte? google ist da irgendwie nicht soo hilfreich.



    ein
    Code:
    function add_file() {
        document.getElementById("fields").innerHTML =
            document.getElementById("fields").innerHTML + 
            "<input name=\"picture[]\" type=\"file\" /><br /><br />";
    }
    löscht die schon ausgewählten bilder wieder...



    Dankeschön
    Zuletzt geändert von chrpun; 20.04.2006, 04:40.
    2 meiner pages:

  • #2
    Re: [JavaScript] neues uploadfeld anzeigen lassen

    Mach's ordentlich über die DOM-Methoden createElement und appendChild bzw. insertBefore.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      also mein HTML ist jetzt:
      Code:
      <div id="fields">
      	<input name="picture[]" type="file" size="50" />
      	<br /><br />
      	<input name="picture[]" type="file" size="50" />
      	<br /><br />
      	<a id="addnew" href="javascript:add_file()">add more...</a><br />
      	</div>
      und mein javascript:
      Code:
      function add_file() {
      	var neuFeld = document.createElement("div");
      	var Text = document.createTextNode("<input name=\"picture[]\" type=\"file\" size=\"50\" /><br /><br />");
      	neuFeld = document.appendChild(Text);
      	document.getElementById("fields").insertBefore(neuFeld, document.getElementById("addnew"));
      }
      wenn ich nun auf den link klicke passiert nichts. hat jemand einen kleinen tipp für mich?
      2 meiner pages:

      Kommentar


      • #4
        - im FF getestet?
        --> was sagt die JS-console?
        - sonstige fehlermeldungen?
        - online-beispiel?
        Kissolino.com

        Kommentar


        • #5
          der FF sagt:
          Fehler: uncaught exception: [Exception... "Node cannot be inserted at the specified point in the hierarchy" code: "3" nsresult: "0x80530003 (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)" location: "http://fotos.chrpun.de/script.js Line: 9"]

          im IE wird das input als text eingefügt. (also ich seh den quellcode auf der seite.
          (hmm... wird wohl daran liegen dass ich creatTEXTNode mache...)

          jemand ne idee?

          (p.s. online beispiel :http://fotos.chrpun.de/test.html )
          2 meiner pages:

          Kommentar


          • #6
            Original geschrieben von chrpun
            im IE wird das input als text eingefügt. (also ich seh den quellcode auf der seite.
            (hmm... wird wohl daran liegen dass ich creatTEXTNode mache...)
            Gut erkannt.
            jemand ne idee?
            Keinen TextNode erzeugen, sonden ein weiteres Element - hat mit Div doch auch geklappt ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ok... aber wie schreib ich die parameter für das input element hin?

              einfach nur document.createelement("input") reicht nicht und document.createelement("input type=\"\file" etc.") geht nicht.

              sorry, aber ich bin nicht so bewandert mit javascript. eher PHP ;-)

              aber schonmal danke wahsaga
              2 meiner pages:

              Kommentar


              • #8
                $input = document.createelement("input");
                $input.setAttribute("type", "file);
                ?

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  danke schön an alle!

                  meine lösung ist nun (getestet in FF und IE7):

                  Code:
                  function add_file() {
                  	var neuFeld = document.createElement("input");
                  	neuFeld.setAttribute("name","picture[]");
                  	neuFeld.setAttribute("type","file");
                  	neuFeld.setAttribute("size","50");
                  	document.getElementById("fields").insertBefore(neuFeld, document.getElementById("addnew"));
                  }
                  2 meiner pages:

                  Kommentar

                  Lädt...
                  X