Javascript Code in Dynamischen Formular

lll192837465lll

Erfahrenes Mitglied
Hallo Miteinander

Ich arbeite gerade an einem Dynamischen Formular, welches Mittels Button [+] um ein neues Input Feld erweitert werden kann.

Nun habe ich in diesem Feld eine Autocomplete Funktion welche auch mitkopiert wird, jedoch nicht funktioniert. Das heisst, der Ganze Javascript Code wird mitkopiert, die ID's werden jedoch nicht angepasst. Kann mir jemand sagen wie ich die ID's ansprechen kann und um +1 erhöht wieder ausgeben kann?

Hier der relevante Code:

Input Feld (mit Div) welches kopiert wird:
HTML:
              <div id="newline-wrapper">
                <table class="split-date-wrap" cellpadding="0" cellspacing="0" border="0">
                  <tbody>
                    <tr>
                      <td>
                      <input type="hidden" id="ausgabed1" value="" disabled="disabled" />
                      <input type="text" id="ausgabe_xml1" name="ausgabe[]" />

				<script type="text/javascript">
                    var options = {
                        script:"add/returnausgabe.php?json=true&limit=6&",
                        varname:"input",
                        json:true,
                        shownoresults:false,
                        maxresults:6,
                        callback: function (obj) { document.getElementById('ausgabeid1').value = obj.id; }
                    };
                    var as_json = new bsn.AutoSuggest('testinput', options);	
                    var options_xml = {
                        script: function (input) { return "add/returnausgabe.php?input="+input+"&ausgabeid="+document.getElementById('ausgabeid1').value; },
                        varname:"input"
                    };
                    var as_xml = new bsn.AutoSuggest('ausgabe_xml1', options_xml);
                </script>
                     </td>
                    </tr>
                  </tbody>
                </table>
              </div>

Javascript Funktion die aufgerufen wird um das Input Feld zu kopieren ([+]).
HTML:
    function newline() {
        var total = document.getElementById("newline-wrapper").getElementsByTagName("table").length;
        total++;

        // Clone the first div in the series
        var tbl = document.getElementById("newline-wrapper").getElementsByTagName("table")[0].cloneNode(true);

        // DOM inject the wrapper div
        document.getElementById("newline-wrapper").appendChild(tbl);

        var buts = tbl.getElementsByTagName("a");
        if(buts.length) {
                buts[0].parentNode.removeChild(buts[0]);
                buts = null;
        }

        // Reset the cloned label's "for" attributes
        var labels = tbl.getElementsByTagName('label');

        for(var i = 0, lbl; lbl = labels[i]; i++) {
                // Set the new labels "for" attribute
                if(lbl["htmlFor"]) {
                        lbl["htmlFor"] = lbl["htmlFor"].replace(/[0-9]+/g, total);
                } else if(lbl.getAttribute("for")) {
                        lbl.setAttribute("for", lbl.getAttribute("for").replace(/[0-9]+/, total));
                }
        }

        // Reset the input's name and id attributes
        var inputs = tbl.getElementsByTagName('input');
        for(var i = 0, inp; inp = inputs[i]; i++) {
                // Set the new input's id and name attribute
                inp.id = inp.name = inp.id.replace(/[0-9]+/g, total);
                if(inp.type == "text") inp.value = "";
        }
new input
        datePickerController.create(document.getElementById("ausgabeid" + total));
		datePickerController.create(document.getElementById("ausgabe_xml" + total));
        var dp = datePickerController.datePickers["dp-normal-1"];
        return false;
    }
    
    function createNewLineButton() {
            var nlw = document.getElementById("newline-wrapper");
  
            var a = document.createElement("a");
            a.href="#";
            a.id = "newline";
            a.title = "Neues Feld erstellen";
            a.onclick = newline;
            nlw.parentNode.appendChild(a);

            a.appendChild(document.createTextNode("+"));
            a = null;

    }

Nun ja, wie gesagt. Eigentlich ziemlich simple, ich möchte nur alle ID's im dynamisch generierten Javascript Code um 1 erweitern.

Vielen Dank für eure Zeit
 
Zurück