Hallo liebe Selfhtml-Community. Ich bin neu hier und auch generell etwas unerfahren, deswegen verzeiht mir bitte wenn ich hier etwas falsch Poste. Ich habe anscheinend ein Element in javascript falsch verstanden, aber hier erstmal mein Problemcode:
function ja() {
if (feld == 0 ) {
document.getElementById("dynamisch").innerHTML +=
"<p><label>Wollen sie eine alternative (nicht instituts adresse)verwenden?: <input type='checkbox' id=\"yes1\"; onclick=\"notify1();\"></label></p> <div id=\"dyn_mail\"></div><p> <label>Benachrichtigung per SMS? <input type='checkbox' id=\"yes2\"; onclick=\"notify2();\"></label></p><div id=\"dyn_sms\"></div> <br><br><br><span style=\"font-weight:bold;\"> Which Instrument you want to notify </span>" ;
feld = 1;
instrument_num=notify_ar[2].split(",");
for (var i = 1; i < menge; i++) {
document.getElementById("dynamisch").innerHTML +=
"<p> Instrument: " + daten[i] + ": <input type='checkbox' id='instrument_" + i + "'></p>";
for (var j=0; j<menge; j++){
if(i==instrument_num[j]){
alert("HALLO");
document.getElementById("instrument_"+i ).checked = true;
}
}
}
}
if(document.getElementById('yes').checked) {
document.getElementById('no').checked = false;
}
for (var j = 0; j < 2; j++){
i=j+1;
if (notify_ar[j] !== 'undefinied'){
document.getElementById("yes"+i ).checked = true;
}
}
}
Ich weiß, das ist nur eine Funktion und von alleine nicht ausführbar, aber ich hoffe sie reicht fürs Verständnis. Mein Problem ist nun, in der doppelten for-Schleife wird in der ersten Schleife ein Element in HTML eingefügt und in der zweiten wird überprüft, ob die Checkbox bereits einmal vom Nutzer ausgewählt wurde. Ist dies der Fall soll die Checkbox angekreuzt erscheinen. Das Alert habe ich nur eingebaut um die Schritte nachzuverfolgen. Wie ich damit rausgefunden habe, werden auch die richtigen Checkboxen abgehakt, allerdings wird das in der nächsten Iteration auch wieder rückgängig gemacht. Funktioniert: "document.getElementById("instrument_"+i ).checked" anders bzw. was sollte ich verwenden? Ich hoffe ich konnte mich einigermaßen verständlich machen.