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 Quote Link to comment 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. Quote Link to comment 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; } } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.