1

我有一个表格,用户可以在其中选择他们想要停留的几个位置,他们必须指定他们将在每个位置的时间,但首先,他们必须输入他们将在每个位置的一般天数,例如,如果我想在第一个位置 2 天和第二个位置 3 天在两个位置,我必须先输入 5 天,然后选择我想要停留的位置,为每个位置指定我有多少天想在那里。问题是,为了防止用户为某个位置输入错误的天数,我为每个位置创建了一个选择元素,因此当用户输入一般天数时,我用该信息填充选择元素(选项从 1到天数),这工作得很好,

function fillUpSelects2(start, top, who) {

    var optionArray = new Array();

    // create the new options
    for (var i = 1; i <= top; i++) {
        optionArray.push(new Option(i, i));
    }

    // get all the select elements
    var selects = jQuery("select.estanciaselect");

    // loop through the selects to change their content
    for (var i = 0; i < selects.length; i++) {

        // if selects[i] is not the one who triggered the change event
        if (selects[i].getAttribute('id') != who) {

            // then I erase all its options
            selects[i].options.length = 0;

            //and here is where it is supposed to add the new options
            for (var j = 0; j < optionArray.length; j++) {
               selects[i].options[selects[i].options.length] = optionArray[j];
            }
        }
    }
}

好吧,当我运行它时,所有选择最终都是空的,但最后一个被正确填满

4

2 回答 2

1

如果您使用的是 jQuery,您不妨使用它来追加它们:

for (var i = 1; i <= top; i++) {
    $(".selects").prepend($("<option>")
                              .val(i)       // Might have to use .attr("value", i) instead
                              .html(i));
}

这是一个 jsFiddle,演示了您可以使用的两个选项(包括上面的一个),但还有更多:

http://jsfiddle.net/tRHYk/

于 2012-09-28T15:03:10.567 回答
0

以下是有关如何将项目添加到多选的方法(尽管不是您问题的直接答案)

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
    $(document).ready(function () {

        var o = new Option("option text", "value");
        $(o).html("option text");
        $("#leftValues").append(o);

    });
</script>

<select id="leftValues" size="5" multiple></select>

请参阅使用 jQuery 向 <select> 添加选项?

于 2013-08-23T06:05:35.543 回答