Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Checken dynamisch erzeugter Checkboxen via DOM?





Frage

Hallo! Habe da mal ein mittelschweres Problem, welches fuer mich aufgrund mangelnder DOM-Kenntnisse kaum loesbar ist. Es geht um folgenden HTML-Code, der zu pruefen ist: [code] <p align="right">Delete ThisParticipant <input type="checkbox" Name="<%="a"&i%>" value="a" onclick ="if (this.checked) {disableIt(´txtEmployeeID<%=i%>,txtName<%=i%>,txtEmail<%=i%>,txtPosition<%=i%>´)}else {enableIt(´txtEmployeeID<%=i%>,txtName<%=i%>,txtEmail<%=i%>,txtPosition<%=i%>´)}" > </td></tr> <tr><td>Employee ID</td><td><input type=text name = "<%="txtEmployeeID"&i%>" ></td></tr> <tr><td>Fullname</td><td><input type=text name = "<%="txtName"&i%>" ></td></tr> <tr><td>Email</td><td><input type=text name = "<%="txtEmail"&i%>" ></td></tr> <tr><td>Position/Function</td><td><input type=text name = "<%="txtPosition"&i%>" ></td></tr> }[/code] Wenn nun die Checkbox angewaehlt wurde, so soll der Javascripcode NICHT ausgefuehrt werden. Wie kann ich das ueber entsprechende (DOM-)Zugriffe steuern??? Anstehend der generierte Code: [code] for (i=1;i<=<%=session("m")%>;i++) { //In folgender Zeile ist der Hund begraben if (document.getElementsByName......... == "false") { frmvalidator.addValidation("txtEmployeeID"+i,"req","Please Fill Participant EmployeeID : "+i); frmvalidator.addValidation("txtName"+i,"req","Please Fill ´Participant Name´: "+i); frmvalidator.addValidation("txtEmail"+i,"req","Please Fill Participant ´Email´ : "+i); frmvalidator.addValidation("txtEmail"+i,"email","Please Correct Participant ´Email´ : "+i); frmvalidator.addValidation("txtPosition"+i,"req","Please Fill Participant ´Position´ : "+i); } } [quote]

Antwort 1 von rfb

Zitat:
//In folgender Zeile ist der Hund begraben
if (document.getElementsByName......... == "false")
und du meinst wenn du aus der entscheidenen Zeile auch noch fast allen Inhalt durch ... ersetzt erhellt sich das Problem besser?

Diese Quellcodefetzen reichen nicht zu einer Antwort.

Antwort 2 von ClemBra

Mir sieht es so aus, als ob die Checkboxen aus Sicht des Client/JavaScript nicht dynamisch erzeugt wurden, sondern sie wurden es per ASP, wovon Js nichts mitbekommt. Du kannst sie ganz normal über ihre Namen ansprechen
if (document.getElementsByName("a"+i)[0].checked == "false")

Soll ich raten: Du hast das [0] vergessen
siehe auch hier:
http://de.selfhtml.org/javascript/objekte/document.htm#get_elements...