2015-02-11 130 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