2017-02-24 61 views
0

我正在使用Array.prototype.map()方法將數組顯示到表中。該表還包含一個輸入字段,併爲Array.prototype.map()輸出的每個實例提交按鈕。我怎麼能跟蹤陣列中提交的位置,還是不可能?如何在使用.map時查找提交的輸入索引

<tbody> 
     <% qryData.map(function(item,i){%> 
      <tr> 
      <td> 
       <%=item.SystemID%> 
      </td> 
      <td> 
       <%=item.SystemName%> 
      </td> 
       <td> 
       <input type="text" name="txtLabID" size="12" maxlength="20"> 
       </td> 
       <td align="center"> 
       <button type="submit" name="AddUpdate" class="btn btn-sm btn-primary">Save</button> 
        <input type="hidden" name="itemIndex" value="<%=i%>"/> 
       </td> 
       </tr> 
       <% })%> 
</tbody> 

回答

1

我不知道你的地圖功能是什麼樣子,但與.map方法操作時,他們可以跟蹤數組的索引。

var numbers = [1, 5, 10, 15]; 
numbers.map(function(number, index) { 
    console.log('number: ' + number + ' index:' + index); 
}); 
//OUTPUT 
// number: 1 index:0 
// number: 5 index:1 
// number: 10 index:2 
// number: 15 index:3 
+0

我的目標是將提交的輸入的索引傳遞到後端進行進一步操作。例如,如果我將數據輸入到地圖項目實例的第一個項目並輸入submit,我想傳遞索引0。 – elleven

0

你爲什麼不將data-index屬性添加到每一個提交按鈕和捕捉提交事件提取該data-index,並添加到您發送到後端數據?

,如果你有

<td align="center"> 
    <button type="submit" name="AddUpdate" data-index=<%= i %> class="btn btn-sm btn-primary">Save</button> 
</td> 

那麼你可以做

$('table button').on('click', function() { 
    let index = this.data('index') 

    // send your request here 
}); 

OR

如果您使用的形式在你的表,然後換你輸入字段,隱藏字段和提交按鈕到單獨的表單,它會提交您的索引沿輸入字段值。

相關問題