getElementById(INTEGER-Var) + checkbox abprüfen

DrEvil

Erfahrenes Mitglied
Hallo Leute,
folgendes Problem: Ich möchte mit getElementById eine Checkbox ansprechen. In einer Schleife wird bei jedem durchlauf eine nachfolgende checkbox ausgewählt, weiterhin erhöht sich eine "var count" (type integer). Diese count-Variable wandle ich in nen string um, damit ich sie bei getElementById einfügen kann.

Aber irgendwie haut die ganze sache nicht, zumindest gibt mir die Fehler-Konsole eine "Element has no properties" zurück.

Code:
function insertAddress(){
 count = 0;
 countSTR = '0';
 nicknames = 'test';
 receiverIDs = '123';
while(typeof document.getElementById(countSTR) == 'object'){
  	    if(document.getElementById(countSTR).checked == true){
		 nicknames = nicknames+document.getElementById(countSTR).name+', ';
		 receiverIDs = receiverIDs+document.getElementById(countSTR).value+', ';
		 count = count+1;
		 countSTR = count.toString();}
		else{count = count+1; countSTR = count.toString();}
}

 window.opener.document.forms["send"].elements["receiverNICK"].value = nicknames;
 window.opener.document.forms["send"].elements["receiverID"].value = receiverIDs;
}

Ich bin mir nicht sicher wo der Fehler liegt und eigentlich möchte ich auch nicht ne extra variable benutzen die ich für die Umwandlung benutze und außerdem wäre ne codeoptimierung auch gut.

Könnt ihr mir helfen?

MfG DrEvil
 
Hi,

ich denke, dass deine Bedingung in der while-Schleife als Typ auch dann object zurück liefert, wenn die Checkboxen bereits durchlaufen sind. Stattdessen einfach auf Existenz des Objekts prüfen.

Ausserdem müssen IDs mit einem Buchstaben beginnen - siehe hier.

Mein Vorschlag:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function insertAddress(){
  count = 0;
  countSTR = 'id_';
  nicknames = 'test';
  receiverIDs = '123';
  while(document.getElementById(countSTR+String(count))){
    if(document.getElementById(countSTR+String(count)).checked){
      nicknames += document.getElementById(countSTR+String(count)).name+', ';
      receiverIDs += document.getElementById(countSTR+String(count)).value+', ';
      count++;
    }else{
      count++;
    }
  }

  window.opener.document.forms["send"].elements["receiverNICK"].value = nicknames;
  window.opener.document.forms["send"].elements["receiverID"].value = receiverIDs;
}
 //-->
</script>
</head>
<body>
<div>
  <input type="checkbox" id="id_0" name="n_0" value="v_0">id_00<br>
  <input type="checkbox" id="id_1" name="n_1" value="v_1">id_01<br>
  <input type="checkbox" id="id_2" name="n_2" value="v_2">id_02<br>
  <input type="checkbox" id="id_3" name="n_3" value="v_3">id_03<br>
  <input type="checkbox" id="id_4" name="n_4" value="v_4">id_04<br>
  <input type="checkbox" id="id_5" name="n_5" value="v_5">id_05<br>
  <button onclick="insertAddress();">insertAddress()</button>
</div>
</body>
</html>
Vielleicht hilft das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück