1

我有以下 JavaScript:

var next_user = "1";

    i=0;
    for (i=0;i<=10;i++) 
    {
        var el = document.getElementById("user_list"); 
        var val = el[i].value;

        if (val <= next_user)
        {
            next_user = i;
        }   

        if (val >= next_user)
        {
            next_user = i;
        }   


            alert(next_user);
    }

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

<select id="user_list" onclick="load_user(this)" name="user_list" size="21" style="width:200px;">
<option value="1">Bob</option>
<option value="2">john</option>
<option value="3">Frank</option>
<option value="5">tom</option>
</select>

我似乎无法让它按照我想要的方式工作。

选择框的列表中可能有 10 个用户,并且每个(选项)值都是唯一的 (1-10)。

正如您在我的选择框中看到的那样,我缺少值 4。我上面的 Javascript 代码旨在通过选择框并找到缺少的第一个值。(在我上面的例子中,它应该回复 4,因为它丢失了)但是如果 Bob 丢失了,那么它应该回复 1。

好吧,这就是我上面的 JavaScript 代码应该做的,但我似乎无法弄清楚我做错了什么。(好吧,我希望我做得对)

有谁知道我做错了什么?

(在这个阶段我并不打算使用任何 jQuery)

4

2 回答 2

1

您应该使用options您提取的选择元素的属性。

例子:

<script>
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");
        break;
    }
}
</script>
于 2012-06-18T08:25:19.203 回答
1

您可以使用以下代码来提醒缺少的选项

var next_user = 1;
var el = document.getElementById("user_list");
for (i = 0; i < 10; i++) {
    var val = parseInt(el[i].value);

    if (val > next_user) {
        alert(next_user);
        break;
    } else {

        next_user++;
    }

}​

演示:http: //jsfiddle.net/joycse06/75kM7/

于 2012-06-18T08:27:59.453 回答