Javascript代码显示选择值

Javascript代码显示选择值,javascript,Javascript,我在查找值是否丢失时遇到一些问题 我的屏幕上有以下选择框: <select id="user_list" onclick="load_user(this)" name="user_list" size="21" style="width:200px;"> <option value="1">Item1</option> <option value="2">Item2</option> <option value="4">

我在查找值是否丢失时遇到一些问题

我的屏幕上有以下选择框:

<select id="user_list" onclick="load_user(this)" name="user_list" size="21" style="width:200px;">   
<option value="1">Item1</option>
<option value="2">Item2</option>
<option value="4">Item4</option>
</select>
它执行我希望它执行的操作,但在检查所有值后,它不会获得下一个值(因此在读取列表中的最后一个选项后停止)

它应该做的是遍历“选择”框中的所有选项,如果其中一个值缺失,它应该重新选择缺失的值。如果所有的值都在那里,那么它应该会调用下一个缺少的可用选项


有人能看到我做错了什么吗?

它一直告诉你
4
丢失了,因为你在循环的每次迭代中都运行
else
代码(直到它找到丢失的代码为止)。
else
中的代码只能运行一次。您可以使用标志变量设置是否缺少标志变量,并在循环后进行检查。尝试将js代码更改为

var allFound = true;
var userList = document.getElementById("user_list");
    for (var i=0;i<userList.options.length; i++) {
        if (userList.options[i].value != (i+1)) {
            alert((i+1)+" is missing");
            allFound = false;
            break;
        }
    }
if(allFound)
    alert((userList.options.length+1)+" is missing");
var allFound=true;
var userList=document.getElementById(“用户列表”);
对于(var i=0;i这在Jfiddle上有效

var userList=document.getElementById(“用户列表”);
var whileindex=0;//跟踪选中的选项数
var i=0;//应可用于选项的值
while(whileindex
谢谢你……这很管用。除了这个,我什么都累了。
else
{
alert((userList.options.length+1)+" is missing"); 
break;
}
var allFound = true;
var userList = document.getElementById("user_list");
    for (var i=0;i<userList.options.length; i++) {
        if (userList.options[i].value != (i+1)) {
            alert((i+1)+" is missing");
            allFound = false;
            break;
        }
    }
if(allFound)
    alert((userList.options.length+1)+" is missing");
var userList = document.getElementById("user_list"); 
var whileindex  = 0; //keeps track of the number of options checked
var i = 0; //values that should be available for the options
while ( whileindex <  userList.options.length )
{
  if (userList.options[i].value != (i+1)) { 
      alert((i+1)+" is missing"); 
      i++; //this because otherwise we have a wrong offset for the check
  } 
  else
  {
      whileindex++; //option exists
  }
   i++; //go on to the next value
}