note 27190 added to faq.html

From: Date: Tue, 26 Nov 2002 17:25:06 +0000
Subject: note 27190 added to faq.html
Groups: php.notes 
Request: Send a blank email to php-notes+get-40004@lists.php.net to get a copy of this message
A JavaScript Note: Using element indexes to reference form elements can cause problems when you want to add new elements to your form; it can shift the indexes of the elements that are already there. For example, You've got an array of checkboxes that exist at the beginning of a form: =================== <FORM> <INPUT type="checkbox" name="fruits[]" value="apple">apple <INPUT type="checkbox" name="fruits[]" value="orange">orange <INPUT type="checkbox" name="fruits[]" value="banana">banana </FORM> =================== ... These elements could be referenced in JavaScript like so: =================== <SCRIPT language="JavaScript" type="text/javascript"> <!-- var index = 0; //could be 1 or 2 as well alert(document.forms[0].elements[index]); //--> </SCRIPT> =================== However, if you added a new textbox before these elements, the checkboxes indexes become 1 - 3 instead of 0 - 2; That can mess up what ever code you create depending on those indexes. Instead, try referencing your html arrays in JavaScript this way. I know it works in Netscape 4 & IE 6, I hope it to some extent is universal... =================== <SCRIPT language="JavaScript" type="text/javascript"> <!-- var message = ""; for (var i = 0; i < document.forms[0].elements['fruits[]'].length; i++) { message += "events[" + i + "]: " + document.forms[0].elements['fruits[]'][i].value + "\n"; } alert(message); //--> </SCRIPT> =================== -- http://www.php.net/manual/en/faq.html.php http://master.php.net/manage/user-notes.php?action=edit+27190 http://master.php.net/manage/user-notes.php?action=delete+27190 http://master.php.net/manage/user-notes.php?action=reject+27190

« previous php.notes (#40004) next »