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
}