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:
Javascript Funktion die aufgerufen wird um das Input Feld zu kopieren ([+]).
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
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