2015-02-11 47 views
0

所以,这有点难以解释,并且还需要搜索。从数组中的输入获取输入值

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

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

现在,当用户删除一个盒子,我拿起一个特定的div(DailyControls)所有的div并把它们放在一个阵列。所有这些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]); 
      } 
     }; 

在警报我可以看到输入元素,也是分区。 但我不知道如何从那里

+1

对于重新排序,如果它们具有相同的类并且id或数字顺序是整数,那么可以在jQuery中执行'each()'函数,并将id o order属性替换为从整数开始计数的整数1 – Cheshire 2015-02-11 12:43:15

回答

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本身。然后在访问它的时候你在012di的timerdiv里面输入字段($(elemdivs[i])),然后从那里得到.val()

+0

这的确有诀窍!谢谢! – Vincentw 2015-02-11 12:57:29