The Little Guy Posted August 20, 2008 Share Posted August 20, 2008 I am not sure what is wrong or why it is worng, any ideas? var selects = document.getElementsByTagName('select'); var selCount = 0; for(var i in selects){ var selIndex = i.selectedIndex; var val = i.options[selIndex].value // line 402 if(val == ''){ selCount = selCount + 1; } } alert(selCount); Error: selIndex is undefined Source File: http://murdercup.publicsize.com/jtest.php Line: 402 Link to comment https://forums.phpfreaks.com/topic/120557-solved-undefined-value/ Share on other sites More sharing options...
lemmin Posted August 20, 2008 Share Posted August 20, 2008 the variable in the for in loop is assigned the next property or index, not object. You would need to use it like: var selIndex = selects[i].selectedIndex; //etc.. However, the very first assignment from the for in loop is actually the number of elements found in the collection (selects) specified. That means that, without checking, the first loop will always throw an out of bounds error. I just use for loops instead of trying to get around it. Link to comment https://forums.phpfreaks.com/topic/120557-solved-undefined-value/#findComment-621239 Share on other sites More sharing options...
The Little Guy Posted August 21, 2008 Author Share Posted August 21, 2008 This works like a charm: var selects = document.getElementsByTagName('select'); var selCount = 0; var val; for(var i = 0;i < selects.length;i++){ var selIndex = selects[i].selectedIndex; val = selects[i].options[selIndex].value if(val == ''){ selCount = selCount + 1; } } Link to comment https://forums.phpfreaks.com/topic/120557-solved-undefined-value/#findComment-622135 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.