从数组中的输入获取输入值

时间:2015-02-11 12:37:44

标签: javascript jquery html arrays

所以,这有点难以解释,也有待搜索。

我的情况: 我有一个网页,允许用户填写最多48个时间字段,所有这些时间字段都是动态生成的,每个字段都有自己的ID,都在div中。

现在,用户还可以选择在任何地方删除字段。在这种情况下,我想重新排序它们。 示例:user具有时间框1到8,删除5。 6变为5,7变为6,8变为7。 这也应该算作ID。

现在,当用户删除一个框时,我会获取特定div中的所有div(DailyControls)并将它们放入一个数组中。所有这些div都有一个名为timepicker的类。

现在我需要从输入框中获取值,这些输入框现在也存储在数组中。

这是用于创建文本框(带有div,一些文本前面和删除按钮)

var newTextBoxDiv = $(document.createElement('div')).attr("ID", 'time' + boxID);

                newTextBoxDiv.after().html('<label>Herrinering #' + boxID + ' : </label>' +
          '<input type="text" name="timebox' + boxID +
          '" id="timebox' + boxID + '" value="" class="timepicker" >' + '<img src="<%= Page.ResolveUrl("~") %>images/ico_delete.png" id="Delete'+ boxID +'" onclick="DeleteTime()"/>');

                newTextBoxDiv.attr("class", "timerdiv");

要删除它们,我目前正在使用以下内容:

function DeleteTime() {
            var id = event.target.id;
            var IdNO = id.replace("Delete", "");

            $("#time" + IdNO).remove();

            var elemdivs = [];

            for (var i = 0; i < $(".timerdiv").length; i++) {
                elemdivs.push($(".timerdiv")[i].innerHTML);
            }

            $('.timerdiv').remove();
            for (var i = 0; i < elemdivs.length; i++) {
                alert(elemdivs[i]);
            }
        };
警告中的

我可以看到输入元素,也可以看到div。 但我不知道如何从那里获得价值

1 个答案:

答案 0 :(得分:0)

根据您提供的信息,这可能会有效:

function DeleteTime() {
        var id = event.target.id;
        var IdNO = id.replace("Delete", "");

        $("#time" + IdNO).remove();

        var elemdivs = [];

        for (var i = 0; i < $(".timerdiv").length; i++) {
            elemdivs.push($(".timerdiv")[i]); // don't push innerHTML
        }

        $('.timerdiv').remove();
        for (var i = 0; i < elemdivs.length; i++) {
            alert($(elemdivs[i]).find('input').val());
        }
    };

而不是将timerdiv中的innerHTML插入到timerdiv中。然后,在访问时,您.find() timerdiv($(elemdivs[i]))内的输入字段,然后从中获取.val()